167. Two Sum II - Input array is sorted
time: O(n)
space: O(1)
class Solution {
public int[] twoSum(int[] numbers, int target) {
int l = 0;
int r = numbers.length - 1;
while (l <= r) {
int sum = numbers[l] + numbers[r];
if (sum == target) {
return new int[]{l+1, r+1};
} else if (sum > target) {
r--;
} else {
l++;
}
}
return new int[]{};
}
}
js
var twoSum = function(numbers, target) {
// two pointer
let left = 0;
let right = numbers.length - 1;
while (left < right) {
const sum = numbers[left] + numbers[right];
if (sum == target) {
return [left+1, right+1];
}
if (sum > target) {
right--;
} else {
left++;
}
}
return [];
};
py
class Solution(object):
def twoSum(self, numbers, target):
"""
:type numbers: List[int]
:type target: int
:rtype: List[int]
"""
left, right = 0, len(numbers)-1
while left < right:
sum = numbers[left] + numbers[right]
if sum == target:
return [left+1, right+1]
elif sum < target:
left += 1
else:
right -= 1
Last updated