首页 > 编程语言 > 详细

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

时间:2019-11-02 00:12:35      阅读:83      评论:0      收藏:0      [点我收藏+]

题目:

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

代码:

 1 class Solution {
 2 public:
 3     vector<int> twoSum(vector<int>& numbers, int target) {
 4 
 5         vector<int>ret;
 6         int l = 0;
 7         int h = numbers.size()-1;
 8         while(l<h)
 9         {
10             int sum = numbers[l]+numbers[h];
11             if(sum == target)
12             {
13                 ret = {l+1,h+1};
14                 break;
15             }
16             else if(sum < target)
17                 l++;
18             else
19                 h--;
20         }
21         return ret;
22         
23     }
24 };

 

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

原文:https://www.cnblogs.com/zjuhaohaoxuexi/p/11780017.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!