编程语言
首页 > 编程语言> > 算法珠玑——双指针(2)

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

作者:互联网

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

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

标签:size,right,target,int,算法,珠玑,numbers,指针,left
来源: https://www.cnblogs.com/qianxinn/p/15635805.html