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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:33
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务