和为S的两个数字

和为S的两个数字

http://www.nowcoder.com/questionTerminal/390da4f7a00f44bea7c2f3d19491311b

import java.util.ArrayList;
public class Solution {
    //解题思路:递增的数组,可以用前后双指针
    public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
        ArrayList<Integer> result = new ArrayList<Integer>();
        if(array == null || array.length == 0) {
            return result;
        }
        int start = 0;
        int end = array.length - 1;
        while(end > start) {
            if(array[start] + array[end] == sum) {
                result.add(array[start]);
                result.add(array[end]);
                break;
            } else if(array[start] + array[end] > sum){//大于sum,则后指针左移
                end--;
            } else {//小于sum,则前指针右移
                start++;
            }
        }
        return result;
    }
}

全部评论

相关推荐

挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
牛客410815733号:这是什么电影查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务