Skip to content

Commit ca6bd9f

Browse files
committed
address comments
1 parent 5632cae commit ca6bd9f

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

3Sum and 4Sum/3Sum.playground/Contents.swift

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,36 @@ func ThreeSum(_ nums: [Int], targetSum: Int) -> [[Int]] {
22
var a = nums.sorted()
33
var ret: [[Int]] = []
44

5-
for i in 0..<a.count {
6-
if i != 0 && a[i] == a[i-1] {
5+
for m in 0..<a.count {
6+
if m != 0 && a[m] == a[m-1] {
77
continue
88
}
99

10-
var j = i + 1
11-
var k = nums.count - 1
10+
var l = m + 1
11+
var r = nums.count - 1
1212

13-
while j < k {
14-
let sum = a[i] + a[j] + a[k]
13+
while l < r {
14+
let sum = a[m] + a[l] + a[r]
1515

1616
if sum == targetSum {
17-
ret.append([a[i], a[j], a[k]])
18-
j += 1
17+
ret.append([a[m], a[l], a[r]])
18+
l += 1
1919
} else if sum < targetSum {
20-
j += 1
20+
l += 1
2121
} else {
22-
k -= 1
22+
r -= 1
2323
}
2424

2525
if sum == targetSum {
26-
while j < k {
26+
while l < r {
2727
var flag = false
28-
if j != 0 && a[j] == a[j-1] {
29-
j += 1
28+
if l != 0 && a[l] == a[l-1] {
29+
l += 1
3030
flag = true
3131
}
3232

33-
if (k != a.count - 1) && a[k] == a[k+1] {
34-
k -= 1
33+
if (r != a.count - 1) && a[r] == a[r+1] {
34+
r -= 1
3535
flag = true
3636
}
3737

@@ -51,3 +51,9 @@ ThreeSum([-1, 0, 1, 2, -1, -4], targetSum: 0)
5151

5252
// Answer: [[-1, -1, 1]]
5353
ThreeSum([-1, 1, 1, -1], targetSum: 1)
54+
55+
// Answer: [[-1, -1, 2], [-1, 0, 1]]
56+
ThreeSum([-1, -1, -1, -1, 2, 1, -4, 0], targetSum: 0)
57+
58+
// Answer: [[-1, -1, 2]]
59+
ThreeSum([-1, -1, -1, -1, -1, -1, 2], targetSum: 0)

0 commit comments

Comments
 (0)