力扣-两数之和

1.题目描述

2.题目链接

LCR 006. 两数之和 II - 输入有序数组 - 力扣(LeetCode)

3.题目代码

java 复制代码
class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int[]ret=new int[2];
        int left=0,right=numbers.length-1;
        while(left<right){
        if(numbers[left]+numbers[right]>target){
            right--;
        }
        else if(numbers[left]+numbers[right]<target){
            left++;
        }
        else{
            ret[0]=left;
            ret[1]=right;
            return ret;
        }
        }
        return ret;
    }
}

4.解题思路

这道题的解题思路也是用双指针来解决的。

1).定义双指针

我们定义指针left为数组的最左边,指针right是数组的最右边。

2).利用单调性移动双指针

numbers[left]+numbers[right]>target 时,不等式要想成立左边就需要减小 ,而numbers[left]已经是最小值 ,所以只能numbers[right]减小 ,也就是right--

numbers[left]+numbers[right]<target 时,不等式要想成立左边就需要增大 ,而numbers[right]已经是最大值 ,所以只能numbers[left]增大 ,也就是left++

numbers[left]+numbers[right]=target 时,不等式成立,将left和right这两个元素下标填入结果数组ret中,返回ret即可。

相关推荐
GEO_JYB9 分钟前
从 MMLU 到 HumanEval:为什么评估大型语言模型(LLM)的基准至关重要?
人工智能·算法
heeheeai9 分钟前
辗转相除法(欧几里得算法)的证明
算法·最大公约数
君万1 小时前
【LeetCode每日一题】94. 二叉树的中序遍历 104. 二叉树的最大深度
算法·leetcode·golang
Imxyk1 小时前
力扣:2322. 从树中删除边的最小分数
数据结构·算法·leetcode
农场主John1 小时前
(双指针)LeetCode 209 长度最小的子数组
数据结构·算法·leetcode
程序员Xu1 小时前
【LeetCode热题100道笔记】前 K 个高频元素
笔记·算法·leetcode
Asmalin1 小时前
【代码随想录day 23】 力扣 93.复原IP地址
算法·leetcode
AMiner:AI科研助手3 小时前
警惕!你和ChatGPT的对话,可能正在制造分布式妄想
人工智能·分布式·算法·chatgpt·deepseek
CHANG_THE_WORLD7 小时前
并发编程指南 同步操作与强制排序
开发语言·c++·算法
gaoshou458 小时前
代码随想录训练营第三十一天|LeetCode56.合并区间、LeetCode738.单调递增的数字
数据结构·算法