LeetCode 167. Two Sum II
阿新 • • 發佈:2018-12-21
分析
題目
Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Note: • Your returned answers (both index1 and index2) are not zero-based. • You may assume that each input would have exactly one solution and you may not use the same element twice.
Example:
Input: numbers = [2,7,11,15], target = 9 Output: [1,2] Explanation: The sum of 2 and 7 is 9. Therefore index1 = 1, index2 = 2.
解答
package LeetCode; import java.util.Arrays; public class L167_TwoSumII_InputArraySorted { public int[] twoSum(int[] numbers, int target) { int front=0,back=numbers.length-1; while(numbers[front]+numbers[back]!=target){ if(numbers[front]+numbers[back]>target) back--; else front++; } return new int[]{front+1,back+1};//下標計數從1開始 } public static void main(String[] args){ L167_TwoSumII_InputArraySorted l167=new L167_TwoSumII_InputArraySorted(); int[] numbers = {2,7,11,15}; int target = 9; int[] result=l167.twoSum(numbers,target); /* for (int res:result) { System.out.println(res+"\t"); }*/ System.out.println(Arrays.toString(result)); } }