一、看到题后反应
不用搜下竟然可以做,结果超时。
思路很简单,数组之和找到另一个就可以了。
public int[] twoSum(int[] numbers, int target) { int result[]=new int[]{0,0,0}; for(int i=0;i
二、优化改变
感觉问题出在了,查找上,决定用下二分查找来
问题一大堆来了,首先要排序吧。
只能得到结果存在。
重新定位。
特殊情况处理。
插曲,数组赋值不会了。公用了一个地址。
上次那个二位数组的x,y不知道怎么得到。 呵呵下来
import java.util.Arrays;/** * 找一个和来 数字组成的 */public class TwoSum { public int[] twoSum(int[] numbers, int target) { int result[]=new int[]{0,0}; int temp[]=new int[numbers.length]; System.arraycopy(numbers, 0, temp, 0, numbers.length); Arrays.sort(numbers); for(int i=0;iresult[1]){ result[0]=result[0]+result[1]; result[1]=result[0]-result[1]; result[0]=result[0]-result[1]; } return result; } public int find(int []numbers,int n,int num){ for(int i=n;i value){ right=middle-1; }else if(array[middle]