Skip to content

Commit 2cb17d0

Browse files
solves #170: Two Sum III: Data structure design
1 parent 0f69c55 commit 2cb17d0

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@
163163
| 167 | [Two Sum II - Input Array is Sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted) | [![Java](assets/java.png)](src/TwoSumIIInputArrayIsSorted.java) [![Python](assets/python.png)](python/two_sum_ii.py) | |
164164
| 168 | [Excel Sheet Column Title](https://leetcode.com/problems/excel-sheet-column-title) | [![Java](assets/java.png)](src/ExcelSheetColumnTitle.java) [![Python](assets/python.png)](python/excel_sheet_column_title.py) | |
165165
| 169 | [Majority Element](https://leetcode.com/problems/majority-element) | [![Java](assets/java.png)](src/MajorityElement.java) [![Python](assets/python.png)](python/majority_element.py) | |
166-
| 170 | 🔒 [Two Sum III - Data Structure Design](https://leetcode.com/problems/two-sum-iii-data-structure-design) | | |
166+
| 170 | 🔒 [Two Sum III - Data Structure Design](https://leetcode.com/problems/two-sum-iii-data-structure-design) | [![Java](assets/java.png)](src/TwoSumIIIDataStructureDesign.java) | |
167167
| 171 | [Excel Sheet Column Number](https://leetcode.com/problems/excel-sheet-column-number) | [![Java](assets/java.png)](src/ExcelSheetColumnNumber.java) [![Python](assets/python.png)](python/excel_sheet_column_number.py) | |
168168
| 172 | [Factoring Trailing Zeroes](https://leetcode.com/problems/factorial-trailing-zeroes) | [![Java](assets/java.png)](src/FactorialTrailingZeros.java) [![Python](assets/python.png)](python/factorial_trailing_zeroes.py) | |
169169
| 173 | [Binary Search Tree Iterator](https://leetcode.com/problems/binary-search-tree-iterator) | [![Java](assets/java.png)](src/BinarySearchTreeIterator.java) | |

src/TwoSumIIIDataStructureDesign.java

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
4+
public class TwoSumIIIDataStructureDesign {
5+
static class TwoSum {
6+
private final Map<Integer, Integer> map = new HashMap<>();
7+
8+
// T: O(1)
9+
public void add(int number) {
10+
map.put(number, map.getOrDefault(number, 0) + 1);
11+
}
12+
13+
// N: number of unique elements we have seen so far
14+
// T: O(N)
15+
public boolean find(int sum) {
16+
for (int current : map.keySet()) {
17+
final int required = sum - current;
18+
if (required == current) {
19+
if (map.get(required) >= 2) {
20+
return true;
21+
} else {
22+
continue;
23+
}
24+
}
25+
26+
if (map.containsKey(required)) {
27+
return true;
28+
}
29+
}
30+
31+
return false;
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)