Permutations II (Java)
来源:互联网 发布:sublime 运行python 编辑:程序博客网 时间:2024/05/16 17:15
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,[1,1,2]
have the following unique permutations:[1,1,2]
, [1,2,1]
, and [2,1,1]
.
比Permutations那道题就多了一个HashSet判断contains。 下次写注意一下其他写法,比如不用contains试试。
Source
public class Solution { public List<List<Integer>> permuteUnique(int[] num) { List<List<Integer>> st = new ArrayList<List<Integer>>(); List<Integer> a = new ArrayList<Integer>(); if(num.length == 0) return st; Arrays.sort(num); boolean[] visited = new boolean[num.length]; HashSet<List<Integer>> hs = new HashSet<List<Integer>>(); searchNum(num, st, a, visited, hs); return st; } public void searchNum(int[] num, List<List<Integer>> st, List<Integer> a, boolean[] visited, HashSet<List<Integer>> hs){ if(a.size() == num.length){ if(!hs.contains(a)){ st.add(new ArrayList<Integer>(a)); //注意递归时的st添加要为a新分配空间 hs.add(a); } return; } for(int i = 0; i < num.length; i++){ if(!visited[i]){ a.add(num[i]); visited[i] = true; searchNum(num, st, a, visited, hs); a.remove(a.size() - 1); //remove*** visited[i] = false; } } }}
Test
public static void main(String[] args){ int[] num = {-1, -1, -1, 3}; System.out.println(new Solution().permuteUnique(num)); }
0 0
- [Leetcode] Permutations II (Java)
- Permutations II Java
- Permutations II (Java)
- [LeetCode][Java] Permutations II
- 46. Permutations/47. Permutations II(Java)
- [leetcode-47]Permutations II(java)
- (Java)LeetCode-47. Permutations II
- ?47. Permutations II leetcode java
- 【LeetCode】Permutations && Permutations II
- leetcode: Permutations/Permutations II
- leetcode Permutations & Permutations II
- [Leetcode]Permutations && Permutations II
- Permutations and Permutations II
- Permutations && Permutations ii
- Permutations II
- Permutations II
- Permutations II
- Permutations II
- android studio 迁移 eclipse 和 Intellij Idea 项目的注意事项
- Subversion error: Repository moved permanently to please relocate 解决方法
- Linux Shell 基本语法
- Redis常用命令
- 【SzNOI语法百题】【d028】#号倒三角形
- Permutations II (Java)
- POJ 3255 Roadblocks (次短路径 + Dijkstra算法)
- C++标准库---set应用之通讯录
- MongoDB数据文件备份与恢复
- MySQL在Linux下快速入门
- Android图片滚动,加入自动播放功能,使用自定义属性实现,霸气十足!
- 【SzNOI语法百题】【d029】求出2-100之间的所有质数(素数)
- linux查看java jdk安装路径和设置环境变量
- 由于采用window.location.href进行页面跳转导致的文档已过期