diff --git a/test001.cpp b/test001.cpp new file mode 100644 index 0000000..a05288a --- /dev/null +++ b/test001.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + vector twoSum(vector& nums, int target) { + int n = nums.size(); + vector 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 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; + } +}; \ No newline at end of file