File tree 2 files changed +69
-0
lines changed
2 files changed +69
-0
lines changed Original file line number Diff line number Diff line change @@ -202,6 +202,43 @@ public class Solution {
202
202
}
203
203
```
204
204
205
+ #### Swift
206
+
207
+ ``` swift
208
+ class Solution {
209
+ private var vis: [[Bool ]] = []
210
+ private var m: Int = 0
211
+ private var n: Int = 0
212
+ private var k: Int = 0
213
+
214
+ func movingCount (_ m : Int , _ n : Int , _ k : Int ) -> Int {
215
+ self .m = m
216
+ self .n = n
217
+ self .k = k
218
+ self .vis = Array (repeating : Array (repeating : false , count : n), count : m)
219
+ return dfs (0 , 0 )
220
+ }
221
+
222
+ private func dfs (_ i : Int , _ j : Int ) -> Int {
223
+ if i >= m || j >= n || vis[i][j] || (digitSum (i) + digitSum (j)) > k {
224
+ return 0
225
+ }
226
+ vis[i][j] = true
227
+ return 1 + dfs (i + 1 , j) + dfs (i, j + 1 )
228
+ }
229
+
230
+ private func digitSum (_ num : Int ) -> Int {
231
+ var num = num
232
+ var sum = 0
233
+ while num > 0 {
234
+ sum += num % 10
235
+ num /= 10
236
+ }
237
+ return sum
238
+ }
239
+ }
240
+ ```
241
+
205
242
<!-- tabs: end -->
206
243
207
244
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ private var vis : [ [ Bool ] ] = [ ]
3
+ private var m : Int = 0
4
+ private var n : Int = 0
5
+ private var k : Int = 0
6
+
7
+ func movingCount( _ m: Int , _ n: Int , _ k: Int ) -> Int {
8
+ self . m = m
9
+ self . n = n
10
+ self . k = k
11
+ self . vis = Array ( repeating: Array ( repeating: false , count: n) , count: m)
12
+ return dfs ( 0 , 0 )
13
+ }
14
+
15
+ private func dfs( _ i: Int , _ j: Int ) -> Int {
16
+ if i >= m || j >= n || vis [ i] [ j] || ( digitSum ( i) + digitSum( j) ) > k {
17
+ return 0
18
+ }
19
+ vis [ i] [ j] = true
20
+ return 1 + dfs( i + 1 , j) + dfs( i, j + 1 )
21
+ }
22
+
23
+ private func digitSum( _ num: Int ) -> Int {
24
+ var num = num
25
+ var sum = 0
26
+ while num > 0 {
27
+ sum += num % 10
28
+ num /= 10
29
+ }
30
+ return sum
31
+ }
32
+ }
You can’t perform that action at this time.
0 commit comments