日野弥生:勉強しよう

LeetCode 167 - 两数之和 II - 输入有序数组

发表于2024年12月31日

#数组 #双指针

要求常数空间,且最好一次遍历的情况下,使用双指针是最优选。双指针所指向的数值如果小于目标值,左指针移位;如果大于目标值右指针移位。 **注意,左右指针无需相遇,且该数组名义上是从1到n。结果需要分别+1。

class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        int i=0,j=numbers.size()-1;
        while(i<j&&(numbers[i]+numbers[j]!=target))
        {
            if(numbers[i]+numbers[j]>target)
                j--;
            else
                i++;
        }
        if(i>=j)
            return {};
        return {i+1, j+1};
    }
};

フラッシュタブ:LeetCode

题目链接:https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/

上一篇

LeetCode 9 - 回文数

下一篇

LeetCode 485 - 最大连续1的个数