File tree 4 files changed +57
-20
lines changed
solution/0000-0099/0001.Two Sum
4 files changed +57
-20
lines changed Original file line number Diff line number Diff line change 21
21
22
22
<!-- 这里可写通用的实现逻辑 -->
23
23
24
+ 用哈希表(字典)存放数组值以及对应的下标。
25
+
26
+ 遍历数组,当发现 ` target - nums[i] ` 在哈希表中,说明找到了目标值。
27
+
24
28
<!-- tabs:start -->
25
29
26
30
### ** Python3**
27
31
28
32
<!-- 这里可写当前语言的特殊实现逻辑 -->
29
33
30
34
``` 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
32
43
```
33
44
34
45
### ** Java**
35
46
36
47
<!-- 这里可写当前语言的特殊实现逻辑 -->
37
48
38
49
``` 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
+ }
40
63
```
41
64
42
65
### ** ...**
Original file line number Diff line number Diff line change @@ -29,13 +29,32 @@ return [<strong>0</strong>, <strong>1</strong>].
29
29
### ** Python3**
30
30
31
31
``` 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
33
40
```
34
41
35
42
### ** Java**
36
43
37
44
``` 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
+ }
39
58
```
40
59
41
60
### ** ...**
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public int [] twoSum (int [] nums , int target ) {
3
3
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 };
7
8
}
8
9
map .put (nums [i ], i );
9
10
}
Original file line number Diff line number Diff line change 1
1
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
You can’t perform that action at this time.
0 commit comments