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

全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务