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

广州网站建设南宁丽江网站开发

广州网站建设南宁,丽江网站开发,wordpress添加微博,淘宝做网站的店目录 题目 思路 代码 题目 给定一个可包含重复数字的序列 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/460442.html

相关文章:

  • 北京品牌建设网站风铃网站具体是做那方面的
  • 公司做网站有用吗网站改版降权多久恢复
  • 企业宣传册免费模板网站安徽省建设项目 备案网站
  • 网站建设主要营销内客网站开发技术概述
  • 网站建设电子网站怎么自动加水印
  • 如何创建个人的网站长沙网站建设哪家强
  • 网站站长wordpress不能上传图片
  • 公司网站欢迎语建企业网站教程
  • 深圳电梯广告制作公司网站企业网站开发方案
  • 企业建设网站需要服务器吗万全网站建设
  • 网页设计与网站制作视频教程集团网站信息建设情况
  • 众车网是哪家公司网站建设网站需要哪些备案
  • 网站建设合同验收西安seo顾问公司
  • 做网站需要先申请域名佛山网站建设费用
  • 如何免费注册网站域名找人做网站防止别人用
  • 免费做网站推广的软件南京建设银行网站首页
  • 如何建立网站快捷链接做爰网站下载
  • 购物商城html网站代码做网站工作怀孕
  • 惠州网站建设哪里有中文网站模板下载免费
  • 宝塔软件怎么做网站大数据查询官网
  • 阳江网站建设wordpress主题更新教程
  • 毕业设计做网站用什么软件网站建设费大概多少钱
  • 长沙正规制作网站公司广州网站开发怎么做
  • 济南建网站访问量大的网站
  • 简单好看个人主页网站模板做坏事网站
  • 装饰公司营销网站模板电子商务网站建设的规划
  • 网站做文件检查做一个招聘信息的网站_用什么做网站的软件
  • 做自媒体的素材网站wordpress搜索页面不同
  • 网站建设 从用户角度开始12306的网站多少钱做的
  • 郑州企业网站排名优化哪家好网站行业关键词