LintCode:M-带重复元素的排列
来源:互联网 发布:淘宝秋水兰熙旗舰店 编辑:程序博客网 时间:2024/05/16 12:00
LintCode链接
给出一个具有重复数字的列表,找出列表所有不同的排列。
样例
给出列表 [1,2,2]
,不同的排列有:
[ [1,2,2], [2,1,2], [2,2,1]]
import java.util.*;class Solution { /** * @param nums: A list of integers. * @return: A list of unique permutations. */ public List<List<Integer>> permuteUnique(int[] nums) { // Write your code here List<List<Integer>> res = new ArrayList<List<Integer>> (); int n = nums.length; Arrays.sort(nums); int[] visited = new int[n]; helper(res, new ArrayList<Integer>(), nums, visited); return res; } void helper(List<List<Integer>> res, List<Integer> tRes, int[] nums, int[] visited){ if(tRes.size()==nums.length){ List<Integer> tmp = new ArrayList<Integer>(); tmp.addAll(tRes); res.add(tmp); return; } for(int i=0; i<nums.length; i++){ //访问过,或者前面已经出现过相同的数字 if(visited[i]==1 || (i-1>=0 && visited[i-1]==0 && nums[i-1]==nums[i])){ continue; }else{ visited[i]=1; tRes.add(nums[i]); helper(res, tRes, nums, visited); tRes.remove(tRes.size()-1); visited[i]=0; } } }}
阅读全文
0 0
- LintCode:M-带重复元素的排列
- lintcode-带重复元素的排列 -16
- LintCode 16 带重复元素的排列
- lintcode(16)带重复元素的排列
- (lintcode)第16题 带重复元素的排列
- LintCode 15-全排列 16-带重复元素的全排列
- 带重复元素的排列
- 带重复元素的排列
- 带重复元素的排列
- LintCode-----16.带重复的全排列
- ***[Lintcode]Permutations II 带重复元素的排列 递归/非递归解法
- lintcode-带重复元素的子集-18
- LintCode 18 带重复元素的子集
- LintCode 带重复元素的子序列
- lintcode(18)带重复元素的子集
- LintCode-----17.带重复元素的子集
- 带重复元素排列
- 题目:带重复元素的排列
- Nginx+Tomcat搭建负载均衡
- 网站自动登录功能(安全-代码简洁)的设计
- new delete operator new oprator delete operator new[] operator delete[] 详解
- Web性能压力测试工具——Siege详解
- (一)如何制作信息管理系统的注册页面
- LintCode:M-带重复元素的排列
- CC26XX定时器以及按键中断
- python连接mysql ---处理数据
- 进入不了o的erp登陆界面(记录日常)
- python 数据表格的合并和重塑--pd.concat
- 使用CSDN-markdown编辑器
- 智能小车23:检测电压模块实验
- Oracle学习笔记 读一致性(ORA-01555错误机制分析)及Undo表空间大小设置
- 人工智能爆发 中美AI芯片大比拼