44
44
<li><strong>Only one valid answer exists.</strong></li>
45
45
</ul >
46
46
47
-
48
47
## Solutions
49
48
50
49
<!-- tabs:start -->
54
53
``` python
55
54
class Solution :
56
55
def twoSum (self , numbers : List[int ], target : int ) -> List[int ]:
57
- low, high = 0 , len (numbers) - 1
58
- while low <= high :
59
- if numbers[low ] + numbers[high ] == target:
60
- return [low + 1 , high + 1 ]
61
- if numbers[low ] + numbers[high ] < target:
62
- low += 1
56
+ left, right = 0 , len (numbers) - 1
57
+ while left < right :
58
+ if numbers[left ] + numbers[right ] == target:
59
+ return [left + 1 , right + 1 ]
60
+ if numbers[left ] + numbers[right ] < target:
61
+ left += 1
63
62
else :
64
- high -= 1
63
+ right -= 1
65
64
return [- 1 , - 1 ]
66
65
```
67
66
@@ -70,15 +69,15 @@ class Solution:
70
69
``` java
71
70
class Solution {
72
71
public int [] twoSum (int [] numbers , int target ) {
73
- int low = 0 , high = numbers. length - 1 ;
74
- while (low <= high ) {
75
- if (numbers[low ] + numbers[high ] == target) {
76
- return new int []{low + 1 , high + 1 };
72
+ int left = 0 , right = numbers. length - 1 ;
73
+ while (left < right ) {
74
+ if (numbers[left ] + numbers[right ] == target) {
75
+ return new int []{left + 1 , right + 1 };
77
76
}
78
- if (numbers[low ] + numbers[high ] < target) {
79
- ++ low ;
77
+ if (numbers[left ] + numbers[right ] < target) {
78
+ ++ left ;
80
79
} else {
81
- -- high ;
80
+ -- right ;
82
81
}
83
82
}
84
83
return new int []{- 1 , - 1 };
@@ -92,22 +91,38 @@ class Solution {
92
91
class Solution {
93
92
public:
94
93
vector<int > twoSum(vector<int >& numbers, int target) {
95
- int low = 0, high = numbers.size() - 1;
96
- while (low <= high) {
97
- if (numbers[ low] + numbers[ high] == target) {
98
- return {low + 1, high + 1};
99
- }
100
- if (numbers[ low] + numbers[ high] < target) {
101
- ++low;
102
- } else {
103
- --high;
94
+ int left = 0, right = numbers.size() - 1;
95
+ while (left < right) {
96
+ if (numbers[ left] + numbers[ right] == target) {
97
+ return {left + 1, right + 1};
104
98
}
99
+ if (numbers[ left] + numbers[ right] < target) ++left;
100
+ else --right;
105
101
}
106
102
return {-1, -1};
107
103
}
108
104
};
109
105
```
110
106
107
+ ### **Go**
108
+
109
+ ```go
110
+ func twoSum(numbers []int, target int) []int {
111
+ left, right := 0, len(numbers)-1
112
+ for left < right {
113
+ if numbers[left]+numbers[right] == target {
114
+ return []int{left + 1, right + 1}
115
+ }
116
+ if numbers[left]+numbers[right] < target {
117
+ left++
118
+ } else {
119
+ right--
120
+ }
121
+ }
122
+ return []int{-1, -1}
123
+ }
124
+ ```
125
+
111
126
### ** ...**
112
127
113
128
```
0 commit comments