码迷,mamicode.com
首页 > 其他好文 > 详细

90. Subsets II

时间:2020-06-29 00:11:37      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:set   open   cti   onclick   splay   dup   none   contain   一个   

Given a collection of integers that might contain duplicates, nums, return all possible subsets (the power set).

Note: The solution set must not contain duplicate subsets.

Example:

Input: [1,2,2]
Output:
[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]

加个continue就行了。

continue和break的区别:break结束双循环的外面一层,continue只结束里面一层

 

尝试用自然语言描述一下:
这个元素和之前i - 1的重复,就跳过这个元素。
i++,到了数组中的下一个元素,就没有之前的i - 1了,而是新的i - 1
所以可以保证不重复

 

从case理解:1122333
i = 5 递归是往深了走,所以一下到后面去了。作为一个经常重复的i被踢了,还是那句话:T的是i
nums[i] = 3
这时候要跳过 
  
i = 4 后面就在recursive的过程中不断踢人。
nums[i] = 3 
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 4
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 2
nums[i] = 2
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 4
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 4
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 4
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 2
nums[i] = 2
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过
  
i = 4
nums[i] = 3
这时候要跳过
  
i = 5
nums[i] = 3
这时候要跳过

 

技术图片
class Solution {
    public List<List<Integer>> subsetsWithDup(int[] nums) {
    List<List<Integer>> list = new ArrayList<>();
    Arrays.sort(nums);
    backtrack(list, new ArrayList<>(), nums, 0);
    return list;
}

private void backtrack(List<List<Integer>> list, List<Integer> tempList, int [] nums, int start){
    list.add(new ArrayList<>(tempList));
    for(int i = start; i < nums.length; i++){
        
        if (i > start && (nums[i] == nums[i - 1])) {
            continue;
        }
        
        tempList.add(nums[i]);
        backtrack(list, tempList, nums, i + 1);
        tempList.remove(tempList.size() - 1);
    }
} 
}
View Code

 

90. Subsets II

标签:set   open   cti   onclick   splay   dup   none   contain   一个   

原文地址:https://www.cnblogs.com/immiao0319/p/13205699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!