美文网首页
BackTracing——47. 全排列 II

BackTracing——47. 全排列 II

作者: 含泪若笑 | 来源:发表于2020-09-24 11:55 被阅读0次

这道题和46题不一样的是有重复元素,所以只需在46题基础上面剪掉重复的就好了。

为了便于剪枝,而且有重复元素,所以我们需要给数组先排序  Arrays.sort(nums);

然后需要加上这个判断去剪掉重复的 if(i != 0 && nums[i] == nums[i - 1] && !visited[i - 1]){  continue;}

这个的含义我想了挺久的,终于想明白了,就是因为有重复元素,所以他只选择了重复元素都被使用的那一条路,其他的有重复元素,但是没有都被访问的就都抛弃了。

!visited[i - 1]和visited[i - 1]都是可以的,不一样的是前者按照面去剪枝,而后者按照路径剪枝,面的效率更高一点。

代码:

https://github.com/hanleirx/LeetCode/blob/master/47.%20%E5%85%A8%E6%8E%92%E5%88%97%20II

相关文章

  • BackTracing——47. 全排列 II

    这道题和46题不一样的是有重复元素,所以只需在46题基础上面剪掉重复的就好了。 为了便于剪枝,而且有重复元素,所以...

  • 47. 全排列 II

    47. 全排列 II[https://leetcode.cn/problems/permutations-ii/]...

  • 47. 全排列 II、39. 组合总和、40. 组合总和 II

    回溯的题 47. 全排列 II[https://leetcode-cn.com/problems/permutat...

  • YC-常考的题目

    46. 全排列 47. 全排列 II 有条件的全排列,打印出[1,2,2,3,4,5]的所有4不在头并且3和5不挨...

  • 搜索(二)回溯

    一、题目总结 基础问题 46.全排列 77.组合 78.子集 39.组合求和 47.全排列 II(重复元素) 90...

  • 47.全排列II

    题目给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例:****输入: [1,1,2]输出:[[1,1,...

  • 47. 全排列 II

    给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 思路 python3解法 来源:力扣(LeetCo...

  • 47. 全排列ii

    1. 题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 2. 解题思路 计算一个map,统计各个元...

  • 47.全排列II

    自己解法 这题解法和全排列类似,只用对同层相同的分支进行剪枝,有点忘了在哪剪了,还是放在后面剪比较好理解,回溯完以...

  • 47. 全排列 II

    思路 排序,人为规定顺序去重。 深搜+回溯

网友评论

      本文标题:BackTracing——47. 全排列 II

      本文链接:https://www.haomeiwen.com/subject/ydnnyktx.html