class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
vector<int>index;
int start=0;
int end=numbers.size()-1;
while(start<end){
int a=numbers[start]+numbers[end];
if(a==target){
index.push_back(start+1);
index.push_back(end+1);break;//匹配到就跳出;
}
if(a<target){
int b=numbers[start];
start++;
if(numbers[start]==b)start++; //如果当前和比目标值小,则左边小的值索引加一;且过滤掉连续相同的值;
}
else if(a>target){
int c=numbers[end];
end--;
if(numbers[end]==c)end--;//如果当前和比目标值大,则右边大的值索引减一;且过滤掉连续相同的值;
}
}
return index;
}
};
LeetCode 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。
最新推荐文章于 2022-11-22 10:31:43 发布