https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/description/
주어진 정수 배열이 정렬되어 있을 때, 두 수의 합이 target이 되는 1based index를 출력하라.
정렬되어 있으므로, left, right를 이용하여 수의 범위를 좁힌다.
target보다 sum이 크면 작아져야 하므로, right를 낮춘다.
target보다 sum이 작으면 커져야 하므로, left를 높힌다.
코드
더보기
vector<int> twoSum(vector<int>& numbers, int target)
{
int left = 0;
int right = numbers.size() - 1;
vector<int> vRet;
while (left <= right)
{
int sum = numbers[left] + numbers[right];
if (sum == target)
return vector<int>{ left+1, right+1 };
else if (sum > target)
--right;
else if (sum < target)
++left;
}
return vRet;
}
결과
'Leetcode > NeetCode' 카테고리의 다른 글
[TwoPointers][Medium] 11. Container With Most Water (0) | 2024.07.09 |
---|---|
[TwoPointers][Medium] 15. 3Sum (0) | 2024.07.09 |
[TwoPointers][Easy] 125. Valid Palindrome (0) | 2024.07.08 |
[ArraysHasing][Medium] 128. Longest Consecutive Sequence (0) | 2024.07.08 |
[ArraysHashing][Medium] 36. Valid Sudoku (0) | 2024.07.08 |