File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
SwiftyLeetCode.playground Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -74,6 +74,49 @@ let twoSumIITarget = 9
7474
7575Solution . 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/
You can’t perform that action at this time.
0 commit comments