https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted
完全随便测的一次。用例太少。
class Solution { public: vector<int> twoSum(vector<int>& numbers, int target) { /* 基本情况: left(1) = 0 right(1) = numbers.size()-1 终止情况: 只有一个,left 不小于 right */ for (int left = 0, right = numbers.size()-1; left < right;) { /* 归纳步骤: left 和 right 目标值与 target 做对比。 */ if ((numbers[left] + numbers[right]) < target) left++; else if ((numbers[right] + numbers[left]) > target) right--; else return {left+1, right+1}; } return {}; } };
本代码包裹在了for循环中,为了提高性能减少全局变量的使用。
此代码仍没有极致优化。