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

【leetcode热题】 两数之和 II - 输入有序数组

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

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1  index2

你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

你所设计的解决方案必须只使用常量级的额外空间。

 

示例 1:

输入:numbers = [2,7,11,15], target = 9
输出:[1,2]
解释:2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

示例 2:

输入:numbers = [2,3,4], target = 6
输出:[1,3]
解释:2 与 4 之和等于目标数 6 。因此 index1 = 1, index2 = 3 。返回 [1, 3] 。

示例 3:

输入:numbers = [-1,0], target = -1
输出:[1,2]
解释:-1 与 0 之和等于目标数 -1 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

解法一

第 1 题 做过无序数组找两个数,里边的解法当然也可以用到这道题,利用了 HashMap,可以过去看一下。

第 15 题 找出三个数,使其和为目标值的题目中的解法中,其实我们将问题转换到了现在这道题,也可以过去看一下。具体的话,其实我们只需要首尾两个指针进行遍历即可。

public int[] twoSum(int[] numbers, int target) {
    int i = 0;
    int j = numbers.length - 1;
    while (i < j) {
        if (numbers[i] + numbers[j] == target) {
            return new int[] { i + 1, j + 1 };
        } else if (numbers[i] + numbers[j] < target) {
            i++;
        } else {
            j--;
        }
    }
    //因为题目告诉我们一定有解,所以这里随便返回了
    return new int[] { -1, -1 };
}

相关文章:

  • 9.用FFmpeg测试H.264文件的解码时间
  • 路由器端口转发远程桌面控制:一电脑连接不同局域网的另一电脑
  • springcloud五大组件:Eureka:注册中心、Zuul:服务网关、Ribbon:负载均衡、Feign:服务调用、Hystix:熔断器
  • tomcat 实现会话绑定
  • MATLAB中的数据类型,例如double,char,logical等。
  • 【MatLab】之:Simulink安装
  • uniapp-vue3 项目初始化集成配置【开箱即用】
  • 16. UE5 RPG获取GE应用的回调,并根据Tag设置数据显示到窗口
  • 工欲善其事,必先利其器,Markdown和Mermaid的梦幻联动(2)
  • 十三、软考-系统架构设计师笔记-层次式架构设计理论与实践
  • QT使用RabbitMQ
  • sqllab第十八关通关笔记
  • 【研发日记】Matlab/Simulink技能解锁(二)——在Matlab Function编辑窗口Debug
  • 腾讯春招后端一面(八股篇)
  • 【数据结构与算法】:选择排序与快速排序
  • Cesium 获取 3dtileset的包围盒各顶点坐标
  • ​【已解决】npm install​卡主不动的情况
  • 深入浅出:Objective-C中使用MWFeedParser下载豆瓣RSS
  • git svn混用
  • 如何使用 CSS 中的 :root 伪类选择器
  • 海运港口股掀涨停潮!回应关税下调利好,有货代称美线舱位爆了
  • 欧元区财长会讨论国际形势及应对美国关税政策
  • 三大股份制银行入局AIC,一级市场再迎“活水”
  • 巴西总统卢拉抵达北京
  • 中俄弘扬正确二战史观:缅怀历史,重拾初心,阻止悲剧重演
  • 蔡达峰:推动食品安全法全面有效实施,为维护人民群众身体健康提供有力法治保障