首页 > 其他分享 >力扣---167. 两数之和 II - 输入有序数组

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

时间:2023-01-27 01:11:23浏览次数:56  
标签:p2 力扣 target int --- numbers index2 index1 两数

给你一个下标从 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] 。

提示:
    2 <= numbers.length <= 3 * 104
    -1000 <= numbers[i] <= 1000
    numbers 按 非递减顺序 排列
    -1000 <= target <= 1000
    仅存在一个有效答案
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

本题是双指针最基础的应用。

没啥好说的,代码如下:

class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int p1 = 0;
        int p2 = numbers.length - 1;
        while (p1 < p2) {
            int sum = numbers[p1] + numbers[p2];
            if (sum == target) {
                return new int[] {p1 + 1, p2 + 1};
            } else if (sum < target) {
                p1 ++;
            } else {
                p2 --;
            }
        }
        return new int[2];
    }
}

运行结果:

双指针

 

标签:p2,力扣,target,int,---,numbers,index2,index1,两数
From: https://www.cnblogs.com/allWu/p/17068462.html

相关文章

  • x210-2023-01-26
    1、由于kernel和system的镜像名字起的比较类似,没注意区分的情况下互相放到对方的烧录命令里头了,但是fastboot命令执行过程中不报错,下载也能下载进去并提示成功,但直到重启机......
  • POJ--3255 Roadblocks(最短路)
    记录0:252023-1-27http://poj.org/problem?id=3255reference:《挑战程序设计竞赛(第2版)》2.4.4p108DescriptionBessiehasmovedtoasmallfarmandsometimese......
  • The Missing Semester - 第二讲 学习笔记
    第二讲Shell工具和脚本课程视频地址:https://www.bilibili.com/video/BV1Vv411v7FR本机学习使用平台:虚拟机ubuntu18.04.6主题一:Shell脚本我们已经学习来如何在......
  • ESA SNAP中超分模块处理Sentinel-2数据效果图
    原文:https://view.inews.qq.com/k/20200906A0GEO600?web_channel=wap&openApp=false欧空局SNAP中超分辨率(SuperResolution)扩展模块可以将Sentinel-2数据20米和60米波段进......
  • Day19 - 正则表达式
    正则表达式的概述正则表达式的介绍在实际开发过程中经常会有查找符合某些复杂规则的字符串的需要,比如:邮箱、图片地址、手机号码等,这时候想匹配或者查找符合某些规则的......
  • Day18 - property和拷贝
    1.装饰器方式的property使用@property对get方法进行装饰get方法在装饰时,不需要再以get_做为前缀在通过@property装饰好Get方法后,可以使用get方法的方法......
  • PyTorch图像分类全流程实战--训练得到的模型预测图像04
    教程同济子豪兄https://space.bilibili.com/1900783https://www.bilibili.com/video/BV1qe4y1D7zDGithub:Train_Custom_Dataset/图像分类/4配置环境数据处理:numpyp......
  • 力扣---848. 字母移位
    有一个由小写字母组成的字符串s,和一个长度相同的整数数组shifts。我们将字母表中的下一个字母称为原字母的移位shift()(由于字母表是环绕的,'z'将会变成'a')。   ......
  • No Cortex-M Device found in JTAG chain 问题的解决
     出现下载失败,被坑了了两次记录一下出现原因总结1、Keil版本太低,程序下载不了单片机,建议卸载重装,会解决2、升级完Keil但是一段时间之后又出现问题,解决方法(1)首先打开S......
  • 7、tensorboard的使用(一)-------add_scalar()
    对应在pytorchcode文件夹里的test_tensorboard.py导入类:fromtorch.utils.tensorboardimportSummaryWriter创建实例:writer=SummaryWriter("logs")主要用到两个方法:add_i......