当前位置: 首页 > news >正文

力扣-两数之和

1.题目描述

2.题目链接

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

3.题目代码

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即可。

 

相关文章:

  • uniapp-商城-64-后台 商品列表(商品修改---页面跳转,深浅copy应用,递归调用等)
  • 【Java学习笔记】main方法
  • 电脑中所有word文件图标变白怎么恢复
  • (vue)前端实现下载后端提供的URL文件
  • 鸿蒙devEco studio如何创建模拟器
  • C++线程池实现
  • JAVA项目中常见的注解总结
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.4.8)
  • 使用Jenkins部署nodejs前端项目
  • 【物联网】基于树莓派的物联网开发【6】——汉化+字体库输入法安装
  • 【Linux系统】第五章 - 第七章 -2 逻辑卷 + RAID阵列
  • 基于R语言的贝叶斯网络模型实践技术应用:开启科研新视角
  • js不同浏览器标签页、窗口或 iframe 之间可以相互通信
  • Redis语法大全
  • 解决dedecms织梦系统{dede:arclist keyword=‘动态获取关键词‘}只生效一次
  • 多模态大语言模型arxiv论文略读(八十七)
  • 结构型:组合模式
  • LeetCode117_填充每个结点的下一个右侧结点指针Ⅱ
  • Java读写分离实战
  • BERT、GPT-3与超越:NLP模型演进全解析