面試題 57. 和爲s的兩個數字
輸入一個遞增排序的數組和一個數字s,在數組中查找兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。
示例 1:
輸入: nums = [2,7,11,15], target = 9
輸出: [2,7] 或者 [7,2]
示例 2:
輸入: nums = [10,26,30,31,47,60], target = 40
輸出: [10,30] 或者 [30,10]
限制:
- 1 <= nums.length <= 10^5
- 1 <= nums[i] <= 10^6
代碼:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int l=0,r=nums.size()-1;
while(l<r)
{
if(nums[l]+nums[r]==target)
return {nums[l],nums[r]};
else if(nums[l]+nums[r]>target)
r--;
else
l++;
}
return {};
}
};