问题描述:

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

示例:

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

算法思想:

设置双指针,i,j分别指向数组的首尾。逐个比较i,j索引位置的值之和与target的值的大小。直到i不小于j为止。如果两者相加等于目标值,就直接返回这两个结果的下标值加1(题中要求从1开始)。如果两者相加小于目标值,i指针需要自增,使两者之和变大。如果两者相加大于目标值,j指针需要自减,使两者之和变小

代码实现

class Solution {public int[] twoSum(int[] numbers, int target) {//设置双指针,i,j分别指向数组的首尾int i=0,j=numbers.length-1;//保存结果的数组int [] results=new int[2];//逐个比较i,j索引位置的值之和与target的值的大小。直到i不小于j为止while(i<j){//如果两者相加等于目标值,就直接返回这两个结果的下标值加1(题中要求从1开始)if(numbers[i]+numbers[j]==target){results[0]=i+1;results[1]=j+1;return results;//如果两者相加小于目标值,i指针需要自增,使两者之和变大}else if(numbers[i]+numbers[j]<target){i++;//如果两者相加大于目标值,j指针需要自减,使两者之和变小}else{j--;} }return results;}
}

leetcode题解167-两数之和 II - 输入有序数组相关推荐

  1. c++两个数组对比去掉重复的元素_LeetCode 题解 | 167.两数之和 II 输入有序数组...

    点击上方蓝字设为星标 下面开始今天的学习- 力扣 167.两数之和 II - 输入有序数组(点击文末阅读原文查看题目)题目描述 给定一个已按照 升序排列 的有序数组,找到两个数使得它们相加之和等于目标 ...

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

    这题用暴力破解法O(n^2)通不过. 1.可以用先减一个数,后用二分查找法寻找另一个数的方法. 具体地,在数组中找到两个数,使得它们的和等于目标值,可以首先固定第一个数,然后寻找第二个数,第二个数等于 ...

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

    C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在 ...

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

    167. 两数之和 II - 输入有序数组 给定一个已按照 非递减顺序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target . 函数应该以长度为 2 的整数数 ...

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

    167. 两数之和 II - 输入有序数组 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必 ...

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

    两数之和 II - 输入有序数组 给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target . 函数应该以长度为 2 的整数数组的形式返回这两 ...

  7. LeetCode 167. 两数之和 II - 输入有序数组 思考分析

    目录 1.暴力,超时 2.双指针+滑动窗口+条件限制 AC 3.观看题解(吸取他人经验) 1.二分查找 2.双指针 3.双指针+二分查找 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和 ...

  8. LeetCode 167. 两数之和 II - 输入有序数组(双指针)

    1. 题目 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明: ...

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

    题目描述 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数.函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2.说明:返回的下 ...

  10. Leetcode 167. 两数之和 II - 输入有序数组 解题思路及C++实现

    解题思路: 因为数组本身是有序的,所以比较简单.定义两个指针,分别指向数组的头部和尾部. 偏大的话,就将尾部指针向前移一位: 偏小的话,就将头部指针向后移一位. class Solution { pu ...

最新文章

  1. 半环(semiring)的数学概念
  2. Android Jetpack Navigation 深入体验报告
  3. redis 都有哪些数据类型?分别在哪些场景下使用比较合适?
  4. MySQL服务迁移到opt_mysql文件*.opt *.frm *.MYI *.MYD的迁移
  5. 3、Eternal框架-控制器
  6. 分解连续自然数的和_小学奥数各年级经典题解题技巧大全——分解因数法(2)...
  7. 成为中国特色项目经理,走上人生巅峰
  8. 为 Node.js 开发者准备的 8 本免费在线电子书(转)
  9. 【Mavne】log4j-slf4j-impl cannot be present with log4j-to-slf4j
  10. 【原】执行nosetests 报错:pkg_resources.DistributionNotFound: nose==0.10.4
  11. OSChina 周三乱弹 —— 究竟是谁走漏风声
  12. HDOJ--2151--worm
  13. 如何更高效地学习3D视觉?
  14. IDL | 实验三、IDL编程演练
  15. 软考高级《信息系统项目管理师》(简称高项)考证经验(满满的干货)
  16. oracle normal索引类型,Oracle中有多少种索引类型?
  17. MacOS下安装R语言和RStudio教程(超完整)
  18. [Vue]动态加载组件的四种方式
  19. 解决fegin post requestbody 400报错问题
  20. 《深入理解Java虚拟机》笔记04之垃圾收集算法

热门文章

  1. 耳机音量过大降低听力?世界卫生组织推出新政策
  2. 苹果WWDC 2019日期曝光 iOS 13也即将到来!
  3. 猫眼娱乐上市首日破发 收盘价14.64港元
  4. 「软件测试」刚从腾讯面试出来,留下了这些面试笔记
  5. java可变字符串替换字符,我们如何替换Java中String和StringBuffer的特定部分?
  6. mysql查询每个用户第一条数据_MySQL数据库订单表按用户邮箱字段分组查询每个用户的第一条记录...
  7. opencv 智能答卷识别系统(一)
  8. toad如何查看表字段备注(表字段的说明)
  9. 【Kafka】Kafka 配置 SCRAM认证
  10. git status或者 git commit 中文文件显示乱码