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

题目链接:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/

代码:

class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int i = 0;
        int j = numbers.length - 1;
        while(i < j) {
            if(numbers[i] + numbers[j] == target) {
                return new int[] {i+1, j+1};
            }else if(numbers[i] + numbers[j] > target) {
                j--;
            }else if(numbers[i] + numbers[j] < target) {
                i++;
            }
        }
        
        
        return null;
    }
}

题解:使用两个变量i,j,i指向数组的第一个元素,j指向数组的最后一个元素,如果两个变量所值的数之和等于目标数,那么返回这两个变量,

  如果两数之和大于目标数,那么把j--,如果两数之和大于目标数,那么i++.

posted @ 2019-11-12 09:13  饶一一  阅读(97)  评论(0编辑  收藏  举报