剑指 Offer 57 - II. 和为s的连续正数序列

剑指 Offer 57 - II. 和为s的连续正数序列
滑动窗口

class Solution {
    public int[][] findContinuousSequence(int target) {
        List<int[]> res = new ArrayList<>();
        int sum = 0;
        for(int l = 1, r = 1; r < target; r++){  // 固定写法
            sum += r;

            while(sum > target){  // 缩小窗口的逻辑
                sum -= l;
                l++;
            }

            if(sum == target){
                int[] tmp = new int[r - l + 1];
                for(int i = l; i <= r; i++) tmp[i - l] = i;
                res.add(tmp);
            }
        }

        return res.toArray(new int[0][]);
    }
}

你可能感兴趣的:(#,剑指offer,算法)