和为S的两个数

问题描述
    给出一个递增数组和一个目标值s,找出和为s的两个数
问题解法
    定义两个指针start,end,分别指向头与尾。如果两指针对应的数字相加大于s,则左移end指针,否则右移start指针
代码如下

import java.util.ArrayList;

/**
 * 和为S的两个数
 */
public class FindNumbersWithSum {
    public static ArrayList FindNumbersWithSum(int [] array, int sum) {
        ArrayList result=new ArrayList();

        if (array==null||array.length<=0){
            return result;
        }

        //定义两个指针,一个指向开始,一个指向末尾
        int start=0;
        int end=array.length-1;


        while (startsum){
                end--;  //数大 左移
            }else {
                result.add(array[start]);
                result.add(array[end]);

                System.out.println(array[start]+":"+array[end]);
                break;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        int array []={1,2,4,7,11,15};
        System.out.println(FindNumbersWithSum(array,15).);
    }
}

你可能感兴趣的:(和为S的两个数)