目录
题目描述:
示例:
解法:
题目描述:
给定一个已按照 升序排列 的有序数组, 找到两个数使得它们相加之和等于目标数.
函数应该返回这两个下标值 index1 和 index2, 其中 index1 必须小于 index2.
说明:
返回的下标值 (index1 和 index2) 不是从零开始的.
你可以假设每个输入只对应唯一的答案, 而且你不可以重复使用相同的元素.
示例:
输入: numbers = [2, 7, 11, 15], target = 9
输出: [1,2]
解释: 2 与 7 之和等于目标数 9 . 因此 index1 = 1, index2 = 2 .
解法:
- class Solution {
- public:
- vector<int> twoSum(vector<int>& numbers, int target) {
- int l = 0;
- int r = numbers.size() - 1;
- int val = 0;
- while(l < r){
- val = numbers[l] + numbers[r];
- if(val < target){
- l++;
- }else if(val == target){
- return {l+1, r+1};
- }else{
- r--;
- }
- }
- return {-1, -1};
- }
- };
leetcode 167. 两数之和 II - 输入有序数组(Two Sum II - Input array is sorted)
来源: http://www.bubuko.com/infodetail-2993388.html