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

算法题(31):两数之和-输入有序数组

审题:

在确定有唯一解的前提下,找出两个下标对应的元素值之和等于target的下标,并存入数组中返回

思路:

方法一:暴力搜索(超时)

利用两个循环进行所有情况的枚举,让每个元素依次与其他元素进行匹配,把所有情况都遍历一遍

方法二:双指针

让left指向索引为0处,right指向索引为n-1处。计算这两个位置的元素的和

如果等于target就退出循环

小于target,则让left++,因为越往右边走,值越大,left++之后sum就变大了,可以接着与target比较

大于target,则让right--

解题:

思考:双指针解法的本质是缩小范围查找,那么我们有没有可能遗漏答案?

这里的遗漏答案指的不是没有找到第二个答案,因为题目说了只有唯一解,这里指的是会不会找不到唯一解

其实不会遗漏唯一解


根据题目:我们假设唯一解的左指针指向为i,右指针指向为j

有:                          0 <= i <= j <= n-1

假设会遗漏唯一解,分两种情况

(1)left>i

(2)right<j

但是这两种情况都不可能存在

(1)left和right不可能同时到达i或j,除非i==0,j==n-1,但是这种情况直接就返回了,不会遗漏。

(2)left先到达i:此时right>j,说明sum>target.此时left不会右移,而是right左移,直到right到达j。即left不会大于i

(3)right先到达j:此时left<i,说明sum<target.此时right不会左移,而是left右移,直到left到达i。即right不会小于j

故不会遗漏唯一解。

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


http://www.kler.cn/a/488319.html

相关文章:

  • 2025年第三届“华数杯”国际赛A题解题思路与代码(Matlab版)
  • 基类指针指向派生类对象,基类指针的首地址永远指向子类从基类继承的基类首地址
  • 基于 OPENCV 和 MFC 的图像处理程序
  • AAAI2023《Controllable Image Captioning via Prompting》
  • 《零基础Go语言算法实战》【题目 1-14】字符串的替换
  • 数据结构(1~10)
  • 2025年新出炉的MySQL面试题
  • 基于http协议的天气爬虫
  • 计算机视觉算法实战——YOLOv7在姿态识别上的应用
  • 【IDEA】快捷键篇
  • 麦田物语学习笔记:创建DragItem实现物品的拖拽跟随显示
  • 【Flutter】使用ScrollController配合EasyRefresh实现列表预加载:在还未滑动到底部时加载下一页数据
  • 图像传感器的视觉演变与创新
  • Unity自定义编辑器:基于枚举类型动态显示属性
  • sql 函数
  • 联邦大语言模型典型系统: FATE - LLM、FedLLM、FederatedScope - LLM、PrimiHub
  • 【Flink】flink或java异常日志输出不完整问题解决
  • 10步打造完美ASP.NET、Web API和控制台应用程序文件夹结构
  • C语言:构造类型(共用体/联合体,枚举)
  • Apache AGE:基于PostgreSQL的图数据库深度解析
  • Python--正则表达式
  • HarmonyOS开发:粒子动画应用实战
  • pytest 常用插件
  • Redis数据库笔记——Redis快的原因
  • Java(day7)
  • HTTP 与 HTTPS 网络传输