Files
leetcode-hot100/test001.cpp
2025-08-08 16:07:11 +08:00

28 lines
752 B
C++

class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int n = nums.size();
vector<int> idxs;
for(int i = 0; i < n; i++) idxs.push_back(i);
// Can't be sorted directly
sort(idxs.begin(), idxs.end(), [&nums](int i, int j){
return nums[i] < nums[j];
});
int l = 0, r = n - 1;
vector<int> res;
while(l < r){
int sum = nums[idxs[l]] + nums[idxs[r]];
if(sum == target){
res.push_back(idxs[l]);
res.push_back(idxs[r]);
break;
}else if(sum > target){
r--;
}else{
l++;
}
}
return res;
}
};