LeetCode90:子集||

    技术2022-07-20  73

    class Solution { public List<List<Integer>> subsetsWithDup(int[] nums) { //创建结果数组 List<List<Integer>> ans = new ArrayList<>(); //不重复问题一般先排序 Arrays.sort(nums); //调用回溯 backtrack(0,nums,ans,new ArrayList<>()); return ans; } //回溯方法 private void backtrack(int start,int[] nums,List<List<Integer>> ans,ArrayList<Integer> track){ //满足条件 ans.add(new ArrayList<Integer>(track)); //选择列表 for(int i = start;i<nums.length;i++){ //去重 if(i>start && nums[i]==nums[i-1]) continue; //做选择 track.add(nums[i]); //回溯 backtrack(i+1,nums,ans,track); //撤销选择 track.remove(track.size()-1); } } }

     

    Processed: 0.012, SQL: 9