网站开发 认证,网站网址查询ip,网站官网怎么做,江苏网站备案要多久78.子集
思路
又回到了组合的模板中来#xff0c;这道题相比于前面的题省去了递归终止条件。大差不差。
代码
class Solution {ListListInteger result new ArrayList();LinkedListInteger listnew LinkedList();public List…78.子集
思路
又回到了组合的模板中来这道题相比于前面的题省去了递归终止条件。大差不差。
代码
class Solution {ListListInteger result new ArrayList();LinkedListInteger listnew LinkedList();public ListListInteger subsets(int[] nums) {backTracking(nums,0);return result;}public void backTracking(int[] nums,int startIndex){result.add(new ArrayList(list));for (int istartIndex;inums.length;i){list.add(nums[i]);backTracking(nums,i1);list.removeLast();}}
}90.子集2
思路
增加了个对重复的判断操作好像之前组合也做过类似的数组排序去重。
去重就简单将前后两个数字进行比较若相等则跳过唯一需要注意的地方就是每层每个位置第一次循环的数字不进行去重。
代码
class Solution {ListListInteger result new ArrayList();LinkedListInteger listnew LinkedList();public ListListInteger subsetsWithDup(int[] nums) {Arrays.sort(nums);backTracking(nums,0);return result;}public void backTracking(int[] nums,int startIndex){result.add(new ArrayList(list));for (int istartIndex;inums.length;i){if (istartIndex nums[i]nums[i-1]) continue; //去重list.add(nums[i]);backTracking(nums,i1);list.removeLast();}}
}