167 -两个Sum II

给定已按升序排序的整数数组,找到两个数字,使它们相加到特定的目标数。

函数twoSum应返回两个数字的索引,以便它们加起来到目标,其中index1必须小于index2。

注意:

  • 您返回的答案(index1和index2)不是从零开始的。
  • 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。

例:

输入:数字= [2,7,11,15],目标= 9
输出: [1,2]
说明: 2和7之和为9.因此
i
ndex1 = 1,index2 = 2。
初始化i和j分别为首位索引和末尾索引。开始循环将数组下标i跟j的值相加比较是否为目标值作为循环条件。如果相加大于目标值,j--;如果相加小于目标值,i++;
 public static int [] twoSum(int [] numbers,int target)
    {
        int i=0,j=numbers.length-1;
        while(numbers[i]+numbers[j]!=target)
        {
            if (numbers[i]+numbers[j]>target)
                j--;
            else if (numbers[i]+numbers[j]<target)
                i++;
        }
        return new int[]{i+1,j+1};
    }

原文地址:https://www.cnblogs.com/dloading/p/10701767.html