Skip to content

Commit 2c53be0

Browse files
committed
Improved tasks 200 and 560
1 parent 678ecce commit 2c53be0

File tree

2 files changed

+36
-37
lines changed
  • src/main/swift
    • g0101_0200/s0200_number_of_islands
    • g0501_0600/s0560_subarray_sum_equals_k

2 files changed

+36
-37
lines changed

src/main/swift/g0101_0200/s0200_number_of_islands/readme.md

+25-25
Original file line numberDiff line numberDiff line change
@@ -45,34 +45,34 @@ An **island** is surrounded by water and is formed by connecting adjacent lands
4545
## Solution
4646

4747
```swift
48-
/**
49-
* Definition for singly-linked list.
50-
* public class ListNode {
51-
* public var val: Int
52-
* public var next: ListNode?
53-
* public init() { self.val = 0; self.next = nil; }
54-
* public init(_ val: Int) { self.val = val; self.next = nil; }
55-
* public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; }
56-
* }
57-
*/
5848
class Solution {
59-
func reverseList(_ head: ListNode?) -> ListNode? {
60-
var prev: ListNode? = nil
61-
var curr = head
62-
var next = head?.next
63-
64-
while curr != nil {
65-
66-
// reverse the current nodes link
67-
curr?.next = prev
68-
69-
// update variables
70-
prev = curr
71-
curr = next
72-
next = next?.next
49+
func numIslands(_ grid: [[Character]]) -> Int {
50+
var grid = grid
51+
var islands = 0
52+
53+
if !grid.isEmpty && !grid[0].isEmpty {
54+
for i in 0..<grid.count {
55+
for j in 0..<grid[0].count {
56+
if grid[i][j] == "1" {
57+
dfs(&grid, i, j)
58+
islands += 1
59+
}
60+
}
61+
}
62+
}
63+
return islands
64+
}
65+
66+
private func dfs(_ grid: inout [[Character]], _ x: Int, _ y: Int) {
67+
if x < 0 || x >= grid.count || y < 0 || y >= grid[0].count || grid[x][y] != "1" {
68+
return
7369
}
7470

75-
return prev
71+
grid[x][y] = "x"
72+
dfs(&grid, x + 1, y)
73+
dfs(&grid, x - 1, y)
74+
dfs(&grid, x, y + 1)
75+
dfs(&grid, x, y - 1)
7676
}
7777
}
7878
```

src/main/swift/g0501_0600/s0560_subarray_sum_equals_k/readme.md

+11-12
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,19 @@ Given an array of integers `nums` and an integer `k`, return _the total number o
3030
```swift
3131
class Solution {
3232
func subarraySum(_ nums: [Int], _ k: Int) -> Int {
33-
var result = 0
34-
var dict = [Int: Int]()
35-
dict[0] = 1
33+
var result = 0
34+
var dict = [Int: Int]()
35+
dict[0] = 1
3636

37-
var sum = 0
38-
for num in nums {
39-
sum += num
40-
if let val = dict[sum - k] {
41-
result += val
37+
var sum = 0
38+
for num in nums {
39+
sum += num
40+
if let val = dict[sum - k] {
41+
result += val
42+
}
43+
dict[sum, default: 0] += 1
4244
}
43-
dict[sum, default: 0] += 1
44-
}
45-
46-
return result
45+
return result
4746
}
4847
}
4948
```

0 commit comments

Comments
 (0)