博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
回溯---含有相同元素求子集
阅读量:5135 次
发布时间:2019-06-13

本文共 919 字,大约阅读时间需要 3 分钟。

含有相同元素求子集

For example,If nums = [1,2,2], a solution is:[  [2],  [1],  [1,2,2],  [2,2],  [1,2],  []]

题目描述:

  给定一个集合,集合中有重复元素,返回其所有的不重复子集。

思路分析:

  求集合的子集,用回溯法进行解决。由于有重复元素,那么我们先对集合进行排序,然后添加元素的时候,查看是否和前一个元素相同,如果相同并且前一个元素还没有被访问,那么就跳过。

代码:

class Solution {    public List
>subsetsWithDup(int []nums){ List
>res=new ArrayList<>(); List
list=new ArrayList<>(); if(nums==null||nums.length==0) return res; Arrays.sort(nums); //排序 boolean []visited=new boolean[nums.length]; for(int size=0;size<=nums.length;size++){ backtracking(0,size,nums,visited,res,list); } return res;}public void backtracking(int start,int size,int[]nums,boolean[]visited,List
>res,List
list){ if(list.size()==size){ res.add(new ArrayList<>(list)); return; } for(int i=start;i

转载于:https://www.cnblogs.com/yjxyy/p/11114235.html

你可能感兴趣的文章
Android对话框自定义标题
查看>>
【奇淫巧技】打狗棒法---过安全狗注入手法
查看>>
在Pandas中直接加载MongoDB的数据
查看>>
Linux(CentOS6.5)修改默认yum源为国内的阿里云、网易yum源
查看>>
Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源
查看>>
delphi三方控件的安装方法
查看>>
(转)C# Color类图示
查看>>
寒假作业3(传说中的写软件)
查看>>
c/c++ static
查看>>
Threadump analyzed Learning plan
查看>>
Xinlinx 7系列FPGA概览
查看>>
【Linux 命令】- tail命令
查看>>
2018软工实践第二次作业
查看>>
报错Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
查看>>
MySQL教程(十二)—— 数据的导入与导出
查看>>
《人月神话》读书笔记2--空间技能
查看>>
ZooKeeper系列(3):znode说明和znode状态
查看>>
JavaScript面向对象和原型函数
查看>>
DPDK 网卡绑定和解绑
查看>>
configparser模块简介
查看>>