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

【中等】力扣算法题解析LeetCode167:两数之和 II-输入有序数组 题目要求在非递减排序数组中找到两数之和等于目标值,并返回其下标(从1开始)。利用双指针技巧,初始化左指针在数组头部,右指针在尾部,通过比较当前和与目标值的差异动态移动指针:若和小则右移左指针,和大则左移右指针。时间复杂度O(n),空间复杂度O(1)。示例:输入[2,7,11,15]和9,输出[1,2]。 阅读详情

一、题目

在这里插入图片描述

二、思路

由于数组是 非递减顺序排列 的,利用该先验知识,可以设置两个指针在数组的起始和末尾,相向前进,与暴力枚举相比可以加快寻找速度。

三、代码

class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int n = numbers.length;
        int i = 0, j = n - 1;
        int sum;
        while (i < j) {
            sum = numbers[i] + numbers[j];
            if (sum > target) {
                j--;
            } else if (sum < target) {
                i++;
            } else {
                break;
            }
        }
        return new int[]{i + 1, j + 1};// 注意题目中数组下标是从 1 开始的
    }
}
Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物 本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。 阅读详情

相关推荐

正点原子lwIP实战指南——从FreeRTOS移植到网络应用开发

本文详细介绍了如何将轻量级TCP/IP协议栈lwIP移植到FreeRTOS实时操作系统上,并基于正点原子STM32开发板进行网络应用开发。内容涵盖从使用STM32CubeMX快速搭建工程、核心概念解析(RAW/NETCONN/Socket API),到关键的系统适配、驱动实现,并通过TCP Echo服务器和云台控制两个实战案例,手把手指导读者完成从移植到应用开发的全过程,帮助嵌入式开发者快速掌握lwIP在FreeRTOS环境下的稳定部署与开发技巧。

s4t5u6v的博客 1000

C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组

C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组   大家好,我叫亓官劼(qí guān jié ),在优快云中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在优快云中写博客,唯一博客更新的地址为:亓官劼的博客 本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 题目 给定一个已按照*升序排列* 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于

一起加油 2053

usb设备的定位信息获取

一个usb hub有20个口,每个口有一个标号,那么如果一个为X的标号插入了一个android设备,如何通过函数,得到这个X,代码实现如下,获取了location, 得到类似 Port_#0002.Hub_#0003 的字符串,然后,要对应一个表。

babytiger的专栏 2106

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

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1

yyh520025的博客 660

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章()介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

汽车ECU自动化测试 1764

前端使用二开Thingsboard一、二、三事(三)-规则链

以项目实战为基础,逐步介绍前端在thingsboard系统二次开发中的一些注意事项以及一些thingsboard一些页面功能讲解,为前端人员开发使用thingsboard提供一种可靠思路,打造一个完美的物联网系统。

weixin_43163457的博客 863

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

题目描述 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例: 输入: numbers = [2, 7, 11, 15], ...

Onwaier的博客 406

2025 华为OD机试真题e卷 C语言 实现【竖直四子棋】

竖直四子棋的棋盘是竖立起来的,双方轮流选择棋盘的一列下子,棋子因重力落到棋盘底部或者其他棋子之上,当一列的棋子放满时,无法再在这列上下子。

MISAYAONE的博客 1415

力扣解题-167. 两数之和 II - 输入有序数组

暴力双指针法(第一次解答):未利用有序特性,O(n²)时间复杂度导致超时,仅适合理解基础思路;首尾双指针法(第二次解答):最优解,O(n)时间+O(1)空间,完全贴合题目要求,是面试/工程首选;二分查找法(备选解):O(n×logn)时间+O(1)空间,效率略低但逻辑通用,适合拓展学习;关键技巧:有序数组的两数之和问题,优先使用首尾双指针法,利用“左小右大”特性精准调整和的大小;避免暴力遍历,充分利用题目给出的“有序”“唯一解”等关键条件;

qq_38261626的博客 919

第11.4节 混合储能系统能量管理

混合储能系统(HESS)的能量管理策略采用分层架构实现多时间尺度优化:调度层(小时级)进行经济优化,协调层(秒级)基于频率分解分配功率,执行层(毫秒级)实现快速跟踪。深度强化学习(DRL)方法通过定义状态空间、动作空间和多目标奖励函数,能有效处理系统不确定性和多目标优化问题。HESS性能评估需综合技术指标(如调节性能Kp值、设备寿命指标)和经济指标(净现值NPV、平准化储能成本LCOS),并遵循"建模-仿真-实验"的闭环流程。

技术工作者 244

【Altium Designer】Off grid pin解决方法

​今天我画完原理图编译时,出现了太多的黄色(出现warning警告提示)Off grid pin警告,这个警告并不是原理图电气连接出问题了,而是元器件或器件PIN脚没有和栅格对齐造成的原因。再编译还是出现这个警告。 最后经过不断翻阅网上经验和实践,才最终解决,本经验详细记录了解决该警告的有效方法。 解决方案:以下是问题解决步骤... ​

夜半少年的博客 7546

力扣leetcode之Java刷题167两数之和 II - 输入有序数组

leetcode之Java刷题

小李子Lee 251

ONVIF协议简介与协议测试工具使用详解

Onvif协议及协议测试工具使用详解

dvlinker的技术专栏 3万+

leetcode 两数相加c++_167. 两数之和 II - 输入有序数组

167. 两数之和 II - 输入有序数组给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1和 index2,其中 index1必须小于 index2。说明:返回的下标值(index1和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例1 :输入: numbers = [2, 7, ...

weixin_39904809的博客 185

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

力扣 #167.两数之和 II - 输入有序数组 JAVA实现

力扣 #167.两数之和 II - 输入有序数组 JAVA实现

weixin_54525144的博客 376

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

力扣leetcode 167. 两数之和 II - 输入有序数组 java

class Solution { public int[] twoSum(int[] numbers, int target) { for(int i=0; i<numbers.length-1; i++) for(int j=i+1; j<numbers.length; j++) if(numbers[...

izhxxx的博客 303

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

167. 两数之和 II - 输入有序数组 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例: 输入: numbers =...

南 墙 1万+

力扣第167题 两数之和 II- 输入有序数组 哈希表 c++ 新手推荐

注意,循环条件应为i < numbers.size(),而不是i <= numbers.size(),因为数组索引是从0开始的。在遍历数组numbers的过程中,对于每个元素numbers[i],我们通过哈希表查找是否存在另一个数target - numbers[i]。>对于空间复杂度来说,这段代码使用了一个哈希表来存储数组元素及其索引,所以空间复杂度为O(n),其中n是数组的长度。C++语言的代码,用于在给定的整数数组numbers中找到两个数,使其和等于给定的目标值target。重复使用相同的元素。

lenyan~的博客 376

#力扣 LeetCode167. 两数之和 II - 输入有序数组 @FDDLC

题目描述: https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/ Java代码: import java.util.HashMap; //已按照升序排列 class Solution { //返回的下标值(index1 和 index2)不是从零开始的;ndex1 必须小于 index2 public int[] twoSum(int[] numbers, int target) { //每个输入只对应唯一.

LiuXingchang的博客 335

【力扣(LeetCode)】【C/C++】【167.两数之和 II - 输入有序数组】

力扣算法刷题

繁华倾夏的博客 324

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

leetcode 167.两数之和 II - 输入有序数组 题目描述 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例...

EngineerHe的博客 1621

怎么根据输入的n来输入n组数组_LeetCode 题解 | 167.两数之和 II - 输入有序数组...

力扣 167. 两数之和 II - 输入有序数组(点击查看题目)题目描述给定一个已按照 升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:解决方案...

weixin_39562327的博客 293

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

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

ranzhiyimu的博客 200

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

因此 index1 = 1, index2 = 2。因为数组已经排好序,我们可以采用方向相反的双指针来寻找这两个数字,一个初始指向最。如果两个指针指向元素的和等于给定值,那么它们就是我们要的结果。小的元素,即数组最左边,向右遍历;一个初始指向最大的元素,即数组最右边,向左遍历。对于排好序且有解的数组,双指针一定能遍历到最优解。此时两个指针指向值的和小于给定值,因此左指针会一直右移直到到达。此时两个指针指向值的和大于给定值,因此右指针会一直左移直到到达。好序且有解的数组,双指针一定能遍历到最优解。

m0_75107602的博客 305

力扣刷题167. 两数之和 II - 输入有序数组

双指针,首先定义两个指针左指针l和右指针r,分别指向最左边和最右边,先求两个指针指向的数之和,因为数组已经按照非递减排序了,如果该和大于目标数,那么就让最右边的指针减一,否则让最左边的指针加一,直至找到目标数即可。

2403_83306207的博客 264

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

167. 两数之和 II - 输入有序数组 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例: 输入: numbers =...

nuts_and_bolts的博客 206
上一篇: 【滑动窗口】力扣 3. 无重复字符的最长子串
下一篇: 【动态规划】力扣 70. 爬楼梯
JZihui
博客等级 码龄6年 170粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值