047 Permutations II 有重复数字的全排列
给定一个可能包含重复数字的集合,返回所有可能的不同全排列。
例如,
[1,1,2] 有以下不同全排列:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
详见:https://leetcode.com/problems/permutations-ii/description/
Java实现:
class Solution {public List<List<Integer>> permuteUnique(int[] nums) {List<List<Integer>> res = new ArrayList<List<Integer>>();int size = nums.length;if(size==0||nums==null){return res;}boolean[] used = new boolean[size];List<Integer> out = new ArrayList<Integer>();Arrays.sort(nums);dfs(nums, used, out,res);return res;}public void dfs(int[] nums, boolean[] used, List<Integer> out,List<List<Integer>> res) {if(out.size()==nums.length) {res.add(new ArrayList<Integer>(out));return ;}for (int i=0; i<nums.length; i++) {// 当前位置的数已经在List中了if(used[i]){continue;}// 当前元素与其前一个元素值相同 且 前元素未被加到list中,跳过该元素if(i>0 && nums[i]==nums[i-1] && !used[i-1]){continue;}// 深度优先搜索遍历used[i]=true;out.add(nums[i]);dfs(nums, used, out, res);out.remove(out.size()-1);used[i]=false;}}
}
参考:https://blog.csdn.net/jacky_chenjp/article/details/66477538
转载于:https://www.cnblogs.com/xidian2014/p/8691406.html
047 Permutations II 有重复数字的全排列相关推荐
- LeetCode Permutations II(有重复元素的全排列)
问题:给出一个有重复元素的数组,要求输出全排列 思路:先排序,然后使用next_permutation 具体代码参考: https://github.com/wuli2496/OJ/tree/mast ...
- 回溯专题——leetcode47. Permutations II medium(有重复数字的全排列)
1.题目描述 Given a collection of numbers, nums, that might contain duplicates, return all possible uniqu ...
- E. Tyler and Strings(组合计数 + 树状数组/线段树)(带重复元素的全排列)
题目链接 主要思路还是比较好想的,一些细节公式预处理比较难搞- 参考题解 分析 从前往后遍历,如果s[]剩下的数中,s[i] < t[i]则对答案是有贡献的: 贡献就是后面位置[i+1 ~ n] ...
- 【数字全排列】LeetCode 47. Permutations II
LeetCode 47. Permutations II Solution1:我的答案 笨蛋方法:和第46题的思路差不多,把vector换成了set就OK啦~~~ class Solution { p ...
- [LeetCode] Permutations II 全排列之二
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- 全排列算法(无重复数字全排列/有重复数字全排列)/ 组合算法/ 求子集算法
写在前面 全排列 1 无重复数字全排列 1.1 紫书版本 1.2 回溯法 2 有重复数字全排列 复盘易错点(可跳过) 写在前面 很久很久以前就想写的一篇博客,因为懒一直没开工,但是学习全排列算法算是我 ...
- lintcode :Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II
题目: 删除排序数组中的重复数字 II 跟进"删除重复数字": 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A ...
- 包含重复数字序列的全排列Python解法
给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列. 列: 输入:nums = [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]] class S ...
- leetcode — 46. 全排列(不含重复数字)
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3 ...
最新文章
- JSP基本语法:文件结构、脚本元素、指令元素、动作元素
- Wargame.kr_Web:already got
- 微服务监控zipkin、skywalking以及日志ELK监控系列
- mybatisPlus的分页查询
- 让XCode的Stack Trace信息可读
- shell与export命令
- spring事务传播,隔离级别,
- idea 配置maven一直停留在loading archetype list
- Drupal 紧急修复已遭利用的严重 0day
- 【转】larbin的设计原理
- 人群与网络:关系的平衡
- bzoj 3561: DZY Loves Math VI
- 数论和有限域的基本概念
- 操作系统原理第五章(资源分配与调度)
- round()函数的用法
- 2019/4/2更新 重制3617-6.17 增加918+6.21 二合一引导启动系统盘
- 数据治理的时代演变之道:大数据分析与机器学习落地应用的未来
- 如何使用Proteus进行电路设计仿真?
- Linux下安装pymysql步骤
- 用UltraIso便捷版制作万能隐藏启动U盘
热门文章
- python生成倒计时图片_python pygame--倒计时
- Python源码深度解析—Python提供的C API
- OpenGL基础21:材质
- OpenGL基础10:变换
- bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
- bzoj 3444: 最后的晚餐
- NYOJ 3:多边形重心问题
- 查看S/N提示'wmic' 不是内部或外部命令,也不是可运行的程序 或批处理文件。的解决办法(不添加环境变量版
- java 数组减除值_java – 删除数组中空值的最有效方法是什么.
- c++中获取蓝图组件_Vue组件通信方式居然有这么多?你了解几种