快速寻找满足条件的两个数

  能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。

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;
    }

 

posted @ 2016-09-08 10:15  樱圃  阅读(147)  评论(0编辑  收藏  举报