File tree Expand file tree Collapse file tree 4 files changed +57
-20
lines changed
solution/0000-0099/0001.Two Sum Expand file tree Collapse file tree 4 files changed +57
-20
lines changed Original file line number Diff line number Diff line change 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### ** ...**
Original file line number Diff line number Diff 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### ** ...**
Original file line number Diff line number Diff line change 11class 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 }
Original file line number Diff line number Diff line change 11class 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