๐ŸŒ• 90. ๅญ้›† II

ๅžไฝ›็ซฅๅญ2022ๅนด6ๆœˆ9ๆ—ฅ
  • algorithm
  • backtrace
ๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ• 90. ๅญ้›† II

้šพๅบฆ: ๐ŸŒ•

้—ฎ้ข˜ๆ่ฟฐ

img_20.png


่งฃๆณ•

class Solution {
    List<List<Integer>> res = new LinkedList<>();
    public List<List<Integer>> subsetsWithDup(int[] nums) {
        // ๆ€่ทฏ๏ผš
        // ้‡ๅคๆ•ฐ็ป„ & ๆ— ้‡ๅคๅญ้›†
        int len = nums.length;
        Arrays.sort(nums); // ้œ€่ฆๆŽ’ๅบไฟ่ฏ้กบๅบๆ€ง
        LinkedList<Integer> path = new LinkedList<>();
        mySol(nums, len, 0, path);
        return res;
    }

    private void mySol(int[] nums, int len, int index, LinkedList<Integer> path) {
        // ้€’ๅฝ’็ปˆๆญขๆกไปถ
        if(index > len) {
            return;
        }
        res.add(new LinkedList<>(path));
        for(int i = index; i < len; i ++) {
            if(i > index && nums[i] == nums[i - 1]) {
                continue; 
            }
            path.addLast(nums[i]);
            mySol(nums, len, i + 1, path);
            path.removeLast();
        }
    }
}

่พ“ๅ‡บ

img_19.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/6/20 ไธ‹ๅˆ8:24:47
่ดก็Œฎ่€…: liuxianzhishou