오름차순 정렬된 배열이 주어진다. 두 값을 더했을때 target이 되는 index 두개를 리턴하라. 공간복잡도는 O(1) 이어야한다.
Input: numbers = [2,7,11,15], target = 9
Output: [1,2]
Explanation: The sum of 2 and 7 is 9. Therefore, index1 = 1, index2 = 2. We return [1, 2].
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
int l = 0, r = numbers.size() - 1;
int sum = 0;
while (l < r) {
sum = numbers[l] + numbers[r];
if (sum < target)
l++;
else if (sum > target)
r--;
else
break;
}
return {l+1, r+1};
}
};