算法珠玑——双指针(2)

算法珠玑——双指针(2)

https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted

算法珠玑——双指针(2)

完全随便测的一次。用例太少。

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循环中,为了提高性能减少全局变量的使用。
此代码仍没有极致优化。

上一篇:167. 两数之和 II - 输入有序数组


下一篇:Redis | 列表对象