两数之和 II – 输入有序数组(Java实现)

两数之和 II – 输入有序数组(Java实现)给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值index1和index2,其中index1必须小于index2。

大家好,又见面了,我是你们的朋友全栈君。

两数之和 II – 输入有序数组


题目

给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。

函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。

说明:

返回的下标值(index1 和 index2)不是从零开始的。
你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。

分析

该题最简单最暴力的解法就是双重循环,直到找到位置,时间复杂度很高,没有充分利用题目中的条件。

题目中已经给出:数组是升序排列的有序数组。

这样我们就可以使用双指针来求解了:l和r分别指向数组头和尾,当l<r成立时,遍历数组,根据有序数组的特性移动指针,直到找到为止。

代码实现

    /**
     * 167. 两数之和 II - 输入有序数组
     * @param numbers
     * @param target
     * @return
     */
    public int[] twoSum(int[] numbers, int target) {
        int l = 0, r = numbers.length - 1;
        int[] res = new int[2];
        while (l < r){
            if (numbers[l] + numbers[r] == target){
                res[0] = l + 1;
                res[1] = r + 1;
                break;
            }else if (numbers[l] + numbers[r] < target){
                l++;
            }else {
                r--;
            }
        }
        return res;
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140827.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 多尺度二维离散小波分解wavedec2

    多尺度二维离散小波分解wavedec2对X进行N尺度小波分解[C,S]=wavedec2(X,N,’wname’);clc,clearall,closeall;loadwoman;[c,s]=wavedec2(X,2,’db1′);%进行2尺度二维离散小波分解。分解小波函数-db1[cH1,cV1,cD1]=detcoef2(‘all’,c,s,1);%尺度1的所有方向的高频系数[cH2,cV2,c…

  • Sql分页查询方式

    Sql分页查询方式Sql的三种分页查询方式先说好吧,查询的数据排序,有两个地方(1、分页前的排序。2、查询到当前页数据后的排序)第一种1、先查询当前页码之前的所有数据idselecttop((当前页数-1)*每页数据条数)idfrom表名2、再查询所有数据的前几条,但是id不在之前查出来的数据中selecttop每页数据条数*from表名whereidnotin( selecttop((当前页数-1)*每页数据条数)idfrom表名 )3、查询出当前页面的所有数据后,再

  • js 给元素添加自定义属性

    js 给元素添加自定义属性给元素添加自定义属性obj.setAttribute(‘attr_name’,’attr_value’);//例如obj.setAttribute(‘class’,’snow-container’)给元素添加class属性的三种方法document.getElementsByTagName(‘body’)[0].className=’snow-container’;//设置为新的…

  • Linux nmap命令详解

    Linux nmap命令详解nmap,也就是NetworkMapper,是Linux下的网络扫描和嗅探工具包。nmap是在网络安全渗透测试中经常会用到的强大的扫描器。功能之强大,不言而喻。下面介绍一下它的几种扫描命令。具体的还是得靠大家自己学习,因为实在太强大了。nmap安装yuminstallnmapnmap场景命令参数Usage:nmap[ScanType(s)][Opti…

  • PHP过滤指定字符串,过滤危险字符

    PHP过滤指定字符串,过滤危险字符

  • 中国名花异草故事

    中国名花异草故事中国名花异草故事作者:刘桂莉、余绮中国名花异草故事—总序  我不是旅行家,几十年来到过的地方却不少。每到一地,工作之余,对当地的一些人情、习俗、山川、风物,以至特殊的传说故事,都颇感兴趣。在谈论或介绍本地的特产时,当地人往往绘声绘色而且充满着喜悦与自豪,连带讲到的一些掌故与传奇,我也感觉兴味盎然。因为其中有些内容,活泼生动,不仅使我扩大了见闻,觉得新鲜有趣,还能增进我对这些地方历史、社会的

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号