滑动窗口(Java版本)

和为S的连续正数序列

http://www.nowcoder.com/questionTerminal/c451a3fd84b64cb19485dad758a55ebe

    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
        ArrayList<ArrayList<Integer>> res = new ArrayList<>();
        int left = 1,right = 1;
        int temp = 0;
        while(left <= sum/2){
            if(temp < sum){
                temp += right;
                right++;
            }else if(temp > sum){
                temp -=left;
                left++;
            }else{
                ArrayList<Integer> ans = new ArrayList<>();
                for(int k = left;k<right;k++){
                    ans.add(k);
                }
                res.add(ans);
                temp -= left;
                left++;
            }
        }
        return res;
    }
全部评论

相关推荐

三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务