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

news2025/1/11 7:01:02

审题:

在确定有唯一解的前提下,找出两个下标对应的元素值之和等于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.coloradmin.cn/o/2274773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9 个大数据示例

被称为大数据的技术是数字时代最具影响力的创新之一。强大的分析揭示了隐藏在大量数据中的模式和相关性&#xff0c;几乎为所有行业的规划和决策提供依据。事实上&#xff0c;就在过去十年间&#xff0c;大数据的应用已经发展到几乎触及我们生活方式、购物习惯以及日常消费选择…

低代码从“产品驱动”向“场景驱动”转型,助力数字化平台构建

一、前言 在数字化时代的大潮中&#xff0c;从宏观层面来看&#xff0c;新技术的落地速度不断加快&#xff0c;各行各业的数字化进程呈现出如火如荼的态势。而从微观层面剖析&#xff0c;企业面临着行业格局快速变化、市场竞争日益激烈以及成本压力显著增强等诸多挑战。 据专…

基于Python编程语言的自动化渗透测试工具

摘 要 近些年来网络安全形势变得越来越严峻&#xff0c;全球数百万个政企遭遇过不同程度的网络攻击。渗透测试是一种对目标进行信息安全评估的方法&#xff0c;而目前该行业仍在存在着安全服务行业价格昂贵&#xff0c;安全人才缺口巨大&#xff0c;在渗透测试时步骤繁琐、效率…

【教程】数据可视化处理之2024年各省GDP排名预测!

过去的一年里&#xff0c;我国的综合实力显著提升&#xff0c;在新能源汽车、新一代战机、两栖攻击舰、航空航天、芯片电子、装备制造等领域位居全球前列。虽然全国各省市全年的经济数据公布还需要一段时间&#xff0c;但各地的工业发展数据&#xff0c;财政收入数据已大概揭晓…

Mysql快速列出来所有列信息

文章目录 需求描述实现思路1、如何查表信息2、如何取字段描述信息3、如何将列信息一行展示4、拼接最终结果 需求描述 如何将MySQL数据库中指定表【tb_order】的所有字段都展示出来&#xff0c;以备注中的中文名为列名。 实现思路 最终展示效果&#xff0c;即拼接出可执行执行…

数据结构(Java版)第七期:LinkedList与链表(二)

专栏&#xff1a;数据结构(Java版) 个人主页&#xff1a;手握风云 一、链表的实现&#xff08;补&#xff09; 接上一期&#xff0c;下面我们要实现删除所有值为key的元素&#xff0c;这时候有的老铁就会想用我们上一期中讲到的remove方法&#xff0c;循环使用remove方法&#…

初学stm32 --- ADC单通道采集

目录 ADC寄存器介绍&#xff08;F1&#xff09; ADC控制寄存器 1(ADC_CR1) ADC控制寄存器 2(ADC_CR2) ADC采样时间寄存器1(ADC_SMPR1) ADC采样时间寄存器2(ADC_SMPR2) ADC规则序列寄存器 1(ADC_SQR1) ADC规则序列寄存器 2(ADC_SQR2) ADC规则序列寄存器 3(ADC_SQR3) AD…

Eclipse配置Tomcat服务器(最全图文详解)

前言&#xff1a; 本章使用图文讲解如何在Eclipse开发工具中配置Tomcat服务器、如何创建和启动JavaWeb工程&#xff0c;欢迎童鞋们互相交流。觉得不错可以三连订阅喔。 目标&#xff1a; 一、配置Tomcat服务器 1. 切换Eclipse视图 2. 打开菜单 3. 找到服务选项 4. 选择…

Apache Hudi vs Delta Lake vs Apache Iceberg

[一]功能对比 Hudi Delta Lake Iceberg 读写功能对比 ACID Transactions 我可以对列式文件进行版本控制和重写吗&#xff1f; Copy-On-Write 我可以在不重写整个文件的情况下高效地摊销更新吗&#xff1f; Merge-On-Read 我可以高效地将初始加载布局到表中吗&…

鸿蒙UI开发——日历选择器

1、概 述 在项目开发中&#xff0c;我们时常会用到日历选择器&#xff0c;效果如下&#xff1a; ArkUI已经为我们提供了组件&#xff0c;我们可以直接使用&#xff0c;下面针对日历组件做简单介绍。 2、CalendarPickerDialog 接口定义如下&#xff1a; // 定义日历选择器弹…

磁盘满造成业务异常问题排查

最近遇到一个因为磁盘满导致的问题&#xff0c;分享一下&#xff0c;希望能够帮助到以后遇到同样问题的朋友。 早上突然收到业务老师反馈说&#xff1a;上传文件不能正常上传了。 想想之前都好好的&#xff0c;最近又没有更新&#xff0c;为什么突然不能使用了呢&#xff1f;…

Java SPI机制介绍及原理分析

概念介绍 SPI 即 Service Provider Interface &#xff0c;字面意思就是&#xff1a;“服务提供者的接口”&#xff0c;我的理解是专门给服务提供者使用的接口&#xff0c;也就是定义接口的人&#xff0c;和实现接口的人并不是同一个人 SPI 将服务接口和具体的服务实现分离开来…

数据分析-55-时间序列分析之获取时间序列的自然周期时间区间

文章目录 1 获取某年的总天数1.1 get_year_days()1.2 应用函数2 获取某年的总周数2.1 get_year_weeks()2.2 应用函数3 获取某日期属于某年的周数3.1 get_time_yearweek()3.2 应用函数4 获取某年某周的开始时间和结束时间4.1 get_week_start_end()4.2 应用函数5 获取往前num周期…

基于Spring Boot的房屋租赁系统源码(java+vue+mysql+文档)

项目简介 房屋租赁系统实现了以下功能&#xff1a; 基于Spring Boot的房屋租赁系统的主要使用者管理员可登录系统后台&#xff0c;登录后可对系统进行全面管理&#xff0c;包括个人中心、公告信息管理、租客管理、户主管理、房屋信息管理、看房申请管理、租赁合同管理、收租信…

MySQL--2.1MySQL的六种日志文件

大家好&#xff0c;我们来说一下MySQL的6中日志文件。 1.查询日志 查询日志主要记录mysql的select查询的&#xff0c;改配置是默认关闭的。不推荐开启&#xff0c;因为会导致大量查询日志文件储存占用你的空间。 举例查询一下 select * from class&#xff1b; 开启查询日志的命…

汽车供应链关键节点:物流采购成本管理全解析

在汽车行业&#xff0c;供应链管理是一项至关重要的任务。汽车制造从零部件的生产到整车的交付&#xff0c;涉及多个环节&#xff0c;其中物流、采购与成本管理是核心节点。本文将深入分析这些关键环节&#xff0c;探讨如何通过供应商管理系统及相关工具优化供应链管理。 一、…

Phidata源码分析

https://www.phidata.app/是一家agent saas公司&#xff0c;他们开源了phidata框架&#xff0c;从github介绍上看(https://github.com/phidatahq/phidata)&#xff0c;功能很齐全&#xff0c;我们来学习一下。 首先&#xff0c;明确目的&#xff0c;我想了解下面的实现方式&…

TypeScript Jest 单元测试 搭建

NPM TypeScript 项目搭建 创建目录 mkdir mockprojectcd mockproject初始化NPM项目 npm init -y安装TypeScript npm i -D typescript使用VSCode 打开项目 创建TS配置文件tsconfig.json {"compilerOptions": {"target": "es5","module&…

FPGA技术的深度理解

目录 引言 FPGA的基本原理 结构组成 工作原理 FPGA的设计流程 设计阶段 编程阶段 实现阶段 FPGA的应用领域 FPGA编程技巧和示例代码 编程技巧 示例代码 结论 引言 FPGA&#xff08;现场可编程门阵列&#xff09;是一种可编程的集成电路&#xff0c;它允许用户根据…

Mysql进阶篇

一&#xff1a;存储引擎 二&#xff1a;索引 2.1 索引概述 索引&#xff08;index&#xff09;帮助mysql高效获取数据的数据结构&#xff08;有序&#xff09;。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&…