Loading

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

class Solution {
    public int[][] findContinuousSequence(int target) {
        List<List<Integer>> list = new ArrayList<>();
        List<Integer> res = new ArrayList<>();
        int s = 1;
        for(int i = 1, j = 1; i <= target; i ++)
        {
            while(s < target)
            {
                j ++;
                s += j;
            }
            if(s == target && j - i > 0)
            {
                for(int k = i; k <= j; k ++) res.add(k);
                list.add(new ArrayList<>(res));
                res.clear();
            }
            s -= i;
        }
        

        int[][] ans = new int[list.size()][];
        for(int i = 0; i < list.size(); i ++){
            int nn = list.get(i).size();
            ans[i] = new int[nn];
            for(int j = 0; j < list.get(i).size(); j ++){
                ans[i][j] = list.get(i).get(j);
            }

        }
        return ans;

    }
}

双指针

posted @ 2021-04-15 16:22  想用包子换论文  阅读(22)  评论(0编辑  收藏  举报