博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode - 47. Permutations II
阅读量:6192 次
发布时间:2019-06-21

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

47. Permutations II 

 ----------------------------------------------------------------------------

Mean: 

给定一个数组(元素可能重复),求这个数组的全排列.

analyse:

注意需要先排序,和上一题的区别在于当发现要交换的两数相等时,无需再往下递归,避免了重复的排列.

Time complexity: O(N)

 

view code

#include <bits/stdc++.h>
using
namespace
std;
class
Solution
{
public
:
   
vector
<
vector
<
int
>>
permuteUnique(
vector
<
int
>
nums)
   
{
       
sort(
nums
.
begin
(),
nums
.
end());
       
vector
<
vector
<
int
>>
res;
       
permutate(
res
,
nums
,
0);
       
return
res;
   
}
   
void
permutate(
vector
<
vector
<
int
>>&
res
,
vector
<
int
>
nums
,
int
begin)
   
{
       
if(
begin
>=
nums
.
size())
           
res
.
push_back(
nums);
       
for(
int
i
=
begin;
i
<
nums
.
size();
++
i)
       
{
           
if(
i
!=
begin
&&
nums
[
i
]
==
nums
[
begin
])
               
continue;
           
swap(
nums
[
i
],
nums
[
begin
]);
           
permutate(
res
,
nums
,
begin
+
1);
       
}
   
}
};
int
main()
{
   
int n;
   
while(
cin
>>n)
   
{
       
vector
<
int
>
nums(n);
       
for(
int
i
=
0;
i
<n;
++
i)
           
cin
>>
nums
[
i
];
       
Solution
solution;
       
auto
ans
=
solution
.
permuteUnique(
nums);
       
for(
auto
p1:
ans)
       
{
           
for(
auto
p2:
p1)
           
{
               
cout
<<
p2
<<
" ";
           
}
           
cout
<<
endl;
       
}
   
}
   
return
0;
}

转载于:https://www.cnblogs.com/crazyacking/p/5255320.html

你可能感兴趣的文章
[转]OOA/OOD/OOP区别
查看>>
.NET命名规范和开发约定
查看>>
ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57【转】
查看>>
Hadoop-No.3之序列化存储格式
查看>>
Windows Phone 7 学习笔记2:感应设备的方向
查看>>
kernel_read【转】
查看>>
PHP.ini配置文件(转载)
查看>>
[LeetCode] Rising Temperature 上升温度
查看>>
《Ext JS权威指南》——1.4节Ext JS的开发工具的获取、安装与配置介绍
查看>>
吴恩达out,王海峰林元庆in!百度人工智能迎来新篇章
查看>>
微软重拾荣光:股价距1999年历史高点仅差7%
查看>>
高维度CRM销售漏斗模型操作中注意事项
查看>>
OA系统和CRM客户关系管理 流程是核心
查看>>
最新版Win 10S遭吐槽:看起来很美,用起来很烦
查看>>
奥巴马政府发布最新Fintech白皮书,提出十大创新监管原则
查看>>
人工智能对人类的威胁只是程序BUG? | 万物互联创新大会
查看>>
Infinera Q2营收同环比下滑 加速推出新产品
查看>>
HR软件Impraise获160万美元种子投资
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
苏州扎实推进消防大数据 综合业务平台试点应用
查看>>