当前位置: 首页 > news >正文

广州网站建设南宁国外免费服务器地址

广州网站建设南宁,国外免费服务器地址,东莞企业网站价格,网站建设实务课本目录 题目 思路 代码 题目 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 输入:nums [1,2,3] 输出…

目录

题目

思路 

代码


题目

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

示例 1:

输入:nums = [1,1,2]
输出:
[[1,1,2],[1,2,1],[2,1,1]]

示例 2:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

思路 

去重一定要对元素进行排序,这样我们才方便通过相邻的节点来判断是否重复使用了

一般来说:组合问题和排列问题是在树形结构的叶子节点上收集结果,而子集问题就是取树上所有节点的结果

对于排列问题,树层上去重和树枝上去重,都是可以的,但是树层上去重效率更高!

这么说是不是有点抽象?

来来来,我就用输入: [1,1,1] 来举一个例子。

树层上去重(used[i - 1] == false),的树形结构如下:

47.全排列II2

树枝上去重(used[i - 1] == true)的树型结构如下:

47.全排列II3

大家应该很清晰的看到,树层上对前一位去重非常彻底,效率很高,树枝上对前一位去重虽然最后可以得到答案,但是做了很多无用搜索。

那如果都可以,直接去掉哪个条件可以吗?

不可以!得一直是 true 或者一直是false 才可以,而不是 一会是true 一会又是false

代码

class Solution {List<List<Integer>> result=new ArrayList<>();LinkedList<Integer> path=new LinkedList<>();boolean[] used;//用来标记他使用过没有public List<List<Integer>> permuteUnique(int[] nums) {used=new boolean[nums.length];Arrays.sort(nums);//先排序,让相同的数字排列在一起Arrays.fill(used, false);backTracking(nums,used);return result;}public void backTracking(int[] nums,boolean[] used){if(path.size()==nums.length){result.add(new ArrayList<>(path));//叶子节点,收集}for(int i=0;i<nums.length;i++){if(i>0&&nums[i]==nums[i-1]&&used[i-1]==false){//重复continue;}if(used[i]==false){//表示数字不能重复取used[i]=true;path.add(nums[i]);backTracking(nums,used);path.remove(path.size()-1);//回溯used[i]=false;}}}
}

http://www.dtcms.com/a/432896.html

相关文章:

  • 佛山网站建设工作站长之家域名
  • 网站大改版经典软文案例200字
  • 汝南企业网站建设网站建设账务处理
  • 惠阳市网站建设鄠邑区建设和住房保障局网站
  • 山西省建设厅勘察设计协会网站wordpress 鼠标经过
  • 服务seo优化是利用规则提高排名
  • 智慧团建网站什么时候维护好企业管理软件app
  • 深圳高端网站建设网页设计南昌it制作电商网站的公司
  • 学网站开发有什么好处网页升级紧急通知网页
  • 网站备案行业怎么知道网站是哪个公司做的
  • 网站建设论坛报告手机怎么创网站免费下载
  • 阜阳网站建设云平台链接网站某一页面如何做
  • 门户网站营销泉州市住房和城乡建设网站
  • 帮人网站开发维护违法上海网站建设代码
  • 松江泗泾网站建设企业页面
  • 电商网站界面规范网页下载网站
  • 做网站什么域名好做网站的外包公司
  • 信息网站怎么做企业网站搭建步骤
  • app手机网站课程培训网站建设
  • 设计师个人网站江门鹤山最新消息新闻
  • 东莞服务公司网站建设网站建设王滨1983
  • 网站范例牙科网站开发
  • 济南网站优化seo讯杰网站建设
  • 东莞专业网站建站设计自动点击竞价广告软件
  • 西昌有哪些做网站的公司如何建设网站挣钱
  • 可信网站认证图标企业安全文化建设中的安全承诺
  • 安徽 网站信息内容建设wordpress 预约主题
  • 曲靖高端网站制作分工做网站如何
  • 网站地图样式淘宝网那样的网站模板
  • 用动易建设网站个人备案的网站