能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。
public ArrayList<Integer> getNumberOfOne(int[] array,int sum){ ArrayList<Integer> arrayList = new ArrayList<>(); Arrays.sort(array); int i=0; int j=array.length-1; while(i<j){ if(array[i]+array[j] == sum){ arrayList.add(array[i]); arrayList.add(array[j]); break; }else if(array[i]+array[j]<sum){ i++; }else if(array[i]+array[j]>sum){ j--; } } return arrayList; }