Skip to content
/ leetcode Public
  • Sponsor doocs/leetcode

  • Notifications You must be signed in to change notification settings
  • Fork 9k

Commit 54258df

Browse files
committedFeb 12, 2021
feat: update solutions to leetcode problem: No.0001
1 parent 19d4678 commit 54258df

File tree

4 files changed

+57
-20
lines changed

4 files changed

+57
-20
lines changed
 

‎solution/0000-0099/0001.Two Sum/README.md

+25-2
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,45 @@
2121

2222
<!-- 这里可写通用的实现逻辑 -->
2323

24+
用哈希表(字典)存放数组值以及对应的下标。
25+
26+
遍历数组,当发现 `target - nums[i]` 在哈希表中,说明找到了目标值。
27+
2428
<!-- tabs:start -->
2529

2630
### **Python3**
2731

2832
<!-- 这里可写当前语言的特殊实现逻辑 -->
2933

3034
```python
31-
35+
class Solution:
36+
def twoSum(self, nums: List[int], target: int) -> List[int]:
37+
helper = {}
38+
for i, v in enumerate(nums):
39+
num = target - v
40+
if num in helper:
41+
return [helper[num], i]
42+
helper[v] = i
3243
```
3344

3445
### **Java**
3546

3647
<!-- 这里可写当前语言的特殊实现逻辑 -->
3748

3849
```java
39-
50+
class Solution {
51+
public int[] twoSum(int[] nums, int target) {
52+
Map<Integer, Integer> map = new HashMap<>();
53+
for (int i = 0, n = nums.length; i < n; ++i) {
54+
int num = target - nums[i];
55+
if (map.containsKey(num)) {
56+
return new int[]{map.get(num), i};
57+
}
58+
map.put(nums[i], i);
59+
}
60+
return null;
61+
}
62+
}
4063
```
4164

4265
### **...**

‎solution/0000-0099/0001.Two Sum/README_EN.md

+21-2
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,32 @@ return [<strong>0</strong>, <strong>1</strong>].
2929
### **Python3**
3030

3131
```python
32-
32+
class Solution:
33+
def twoSum(self, nums: List[int], target: int) -> List[int]:
34+
helper = {}
35+
for i, v in enumerate(nums):
36+
num = target - v
37+
if num in helper:
38+
return [helper[num], i]
39+
helper[v] = i
3340
```
3441

3542
### **Java**
3643

3744
```java
38-
45+
class Solution {
46+
public int[] twoSum(int[] nums, int target) {
47+
Map<Integer, Integer> map = new HashMap<>();
48+
for (int i = 0, n = nums.length; i < n; ++i) {
49+
int num = target - nums[i];
50+
if (map.containsKey(num)) {
51+
return new int[]{map.get(num), i};
52+
}
53+
map.put(nums[i], i);
54+
}
55+
return null;
56+
}
57+
}
3958
```
4059

4160
### **...**

‎solution/0000-0099/0001.Two Sum/Solution.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
class Solution {
22
public int[] twoSum(int[] nums, int target) {
33
Map<Integer, Integer> map = new HashMap<>();
4-
for (int i = 0; i < nums.length; ++i) {
5-
if (map.containsKey(target - nums[i])) {
6-
return new int[] {map.get(target - nums[i]), i};
4+
for (int i = 0, n = nums.length; i < n; ++i) {
5+
int num = target - nums[i];
6+
if (map.containsKey(num)) {
7+
return new int[]{map.get(num), i};
78
}
89
map.put(nums[i], i);
910
}
+7-13
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
class Solution:
2-
def twoSum(self, nums, target):
3-
"""
4-
:type nums: List[int]
5-
:type target: int
6-
:rtype: List[int]
7-
"""
8-
tmp={k:v for k,v in enumerate(nums)}
9-
for k,v in tmp.items():
10-
tmp0=tmp.copy()
11-
tmp0.pop(k)
12-
if target-v in tmp0.values():
13-
return [k,list(tmp0.keys())[list(tmp0.values()).index(target-v)]]
14-
return []
2+
def twoSum(self, nums: List[int], target: int) -> List[int]:
3+
helper = {}
4+
for i, v in enumerate(nums):
5+
num = target - v
6+
if num in helper:
7+
return [helper[num], i]
8+
helper[v] = i

0 commit comments

Comments
 (0)
Please sign in to comment.