Skip to content

Commit c58cf03

Browse files
committed
170. Two Sum III - Data structure design
1 parent 9d6268d commit c58cf03

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

SwiftyLeetCode.playground/Contents.swift

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,49 @@ let twoSumIITarget = 9
7474

7575
Solution.twoSum(nums: twoSumIINums, twoSumIITarget)
7676

77+
/**
78+
* 170. Two Sum III - Data structure design
79+
* https://leetcode.com/problems/two-sum-iii-data-structure-design
80+
*/
81+
82+
class TwoSumIII {
83+
private var map = [Int: Int]()
84+
private var list = [Int]()
85+
86+
func add(number: Int) {
87+
if let numCount = map[number] {
88+
map[number] = numCount + 1
89+
} else {
90+
map[number] = 1
91+
list.append(number)
92+
}
93+
}
94+
95+
func find(value: Int) -> Bool {
96+
97+
for number in list {
98+
if let numCount = map[number], number == value - number, numCount > 1 {
99+
return true
100+
}
101+
102+
if let _ = map[value - number], number != value - number {
103+
return true
104+
}
105+
}
106+
107+
return false
108+
}
109+
110+
}
111+
112+
// usage
113+
let twoSumIII = TwoSumIII()
114+
twoSumIII.add(number: 1)
115+
twoSumIII.add(number: 3)
116+
twoSumIII.add(number: 5)
117+
twoSumIII.find(value: 4)
118+
twoSumIII.find(value: 7)
119+
77120
/**
78121
* 217. Contains Duplicate
79122
* https://leetcode.com/problems/contains-duplicate/

0 commit comments

Comments
 (0)