Skip to content

Commit cd52319

Browse files
author
Yi Gu
committed
Refactor code style to Permutations II
1 parent 0b5b5ee commit cd52319

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

DFS/PermutationsII.swift

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,26 @@ class PermutationsII {
1010
func permuteUnique(_ nums: [Int]) -> [[Int]] {
1111
var res = [[Int]](), path = [Int](), visited = [Bool](repeating: false, count: nums.count)
1212

13-
let nums = nums.sorted(by: <)
14-
15-
_dfs(&res, &path, nums, &visited)
13+
dfs(&res, &path, &visited, nums.sorted())
1614

1715
return res
1816
}
1917

20-
private func _dfs(inout res: [[Int]], inout _ path: [Int], _ nums: [Int], inout _ visited: [Bool]) {
21-
// termination case
18+
private func dfs(_ res: inout [[Int]], _ path: inout [Int], _ isVisited: inout [Bool], _ nums: [Int]) {
2219
if path.count == nums.count {
2320
res.append(path)
2421
return
2522
}
2623

27-
for i in 0..<nums.count {
28-
if visited[i] || (i > 0 && nums[i] == nums[i - 1] && visited[i - 1]) {
29-
continue
24+
for (i, num) in nums.enumerated() where !isVisited[i] {
25+
if i > 0 && nums[i] == nums[i - 1] && !isVisited[i - 1] {
26+
continue
3027
}
3128

32-
path.append(nums[i])
33-
visited[i] = true
34-
_dfs(&res, &path, nums, &visited)
35-
visited[i] = false
29+
path.append(num)
30+
isVisited[i] = true
31+
dfs(&res, &path, &isVisited, nums)
32+
isVisited[i] = false
3633
path.removeLast()
3734
}
3835
}

0 commit comments

Comments
 (0)