标签:array public ber upd bre mat targe number log
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
UPDATE (2016/2/13):
The return format had been changed to zero-based indices. Please read the above updated description carefully.
public class Solution { public int[] twoSum(int[] nums, int target) { int[] copy = new int[nums.length]; int index1 = 0; int index2 = nums.length - 1; int first = -1; int second = -1; int[] result = new int[2]; System.arraycopy(nums, 0, copy, 0, nums.length); Arrays.sort(copy); while (index1 < index2) { if (copy[index1] + copy[index2] == target) { result[0] = copy[index1]; result[1] = copy[index2]; break; }else if(copy[index1] + copy[index2] < target){ index1++; }else{ index2--; } } for(int i = 0; i < nums.length; i++){ if (result[0] == nums[i] && first == -1){ first = i; }else if (result[1] == nums[i] && second == -1){ second = i; } } result[0] = first; result[1] = second; return result; } }
标签:array public ber upd bre mat targe number log
原文地址:http://www.cnblogs.com/iwangzheng/p/6001448.html