兩數之和 II - 輸入有序陣列 --java
阿新 • • 發佈:2021-10-30
給定一個已按照 非遞減順序排列 的整數陣列numbers ,請你從陣列中找出兩個數滿足相加之和等於目標數target 。
函式應該以長度為 2 的整數陣列的形式返回這兩個數的下標值。numbers 的下標 從 1 開始計數 ,所以答案陣列應當滿足 1 <= answer[0] < answer[1] <= numbers.length 。
你可以假設每個輸入 只對應唯一的答案 ,而且你 不可以 重複使用相同的元素。
示例 1:
輸入:numbers = [2,7,11,15], target = 9
輸出:[1,2]
解釋:2 與 7 之和等於目標數 9 。因此 index1 = 1, index2 = 2 。
示例 2:
輸入:numbers = [2,3,4], target = 6
輸出:[1,3]
示例 3:
輸入:numbers = [-1,0], target = -1
輸出:[1,2]
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
class Solution { public int[] twoSum(int[] numbers, int target) { int[] result = new int[2]; int start = 0,end = numbers.length-1; while(start<end){ if(numbers[end] + numbers[start] > target){ //當總和大於target時候,說明end下標大了 end--; }else if(numbers[end] + numbers[start] < target){ //當總和小於target時候,說明start下標大了 start++; }else{ result[0] = start+1; result[1] = end+1; return result; } } return result; } }