class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int>ans,tmp;
tmp=nums;
int first=0;
int second=nums.size()-1;
while ((nums[first]+nums[second])!=target) {
if (nums[first]+nums[second]<target) {
first++;
}else
second--;
}
for (int i=0; i<nums.size(); i++) {
if (tmp[i]==nums[first]) {
ans.push_back(i+1);
}else{
if (tmp[i]==nums[second]) {
ans.push_back(i+1);
}
}
}
return ans;
}
};
先排序,然后两个指针两边夹进;