博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Permutations II
阅读量:4074 次
发布时间:2019-05-25

本文共 1201 字,大约阅读时间需要 4 分钟。

Permutations II

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].

Java代码:

public class Solution {  public List
> permuteUnique(int[] num) { List
> opt = new ArrayList
>(); // edge case if(num.length==0){return opt;} // base case List
firstLst = new ArrayList
(); firstLst.add(num[0]); opt.add(firstLst); // iteration for(int i =1;i < num.length;i++){ HashSet
> visited = new HashSet
>(); int numOfLastOpt = opt.size(); for(int j = 0;j < numOfLastOpt;j++){ // insert new int into each valid gap int positions = opt.get(j).size(); for(int u = 0;u <= positions;u++){ if(u != 0){ if(opt.get(j).get(u-1) != num[i]){ List
newLst = new ArrayList
(opt.get(j)); newLst.add(u,num[i]); if(!visited.contains(newLst)){ opt.add(newLst); visited.add(newLst); } } }else{ List
newLst = new ArrayList
(opt.get(j)); newLst.add(u,num[i]); if(!visited.contains(newLst)){ opt.add(newLst); visited.add(newLst); } } } } // delete previous opt for(int j = 0;j < numOfLastOpt;j++){ opt.remove(0); } } return opt; }}
 

转载地址:http://upuni.baihongyu.com/

你可能感兴趣的文章
STM32中assert_param的使用
查看>>
C语言中的 (void*)0 与 (void)0
查看>>
vu 是什么
查看>>
io口的作用
查看>>
IO口的作用
查看>>
UIView的使用setNeedsDisplay
查看>>
归档与解归档
查看>>
Window
查看>>
为什么button在设置标题时要用一个方法,而不像lable一样直接用一个属性
查看>>
字符串的截取
查看>>
2. Add Two Numbers
查看>>
17. Letter Combinations of a Phone Number (DFS, String)
查看>>
93. Restore IP Addresses (DFS, String)
查看>>
19. Remove Nth Node From End of List (双指针)
查看>>
49. Group Anagrams (String, Map)
查看>>
139. Word Break (DP)
查看>>
Tensorflow入门资料
查看>>
剑指_用两个栈实现队列
查看>>
剑指_顺时针打印矩阵
查看>>
剑指_栈的压入弹出序列
查看>>