[LeetCode 题解]: Permutations
2024-09-18 11:09:16
Given a collection of numbers, return all possible permutations.
For example,[1,2,3]
have the following permutations:[1,2,3]
, [1,3,2]
, [2,1,3]
, [2,3,1]
, [3,1,2]
, and [3,2,1]
.
题解: 全排列,DFS。
在STL里面有一个next_permutation函数,如果数据量小的时候,这个函数还比较好用。不过当数据大后,next_permutation函数效率就不行了。
本题套用DFS模版即可。
类似的题目: Permutation II http://www.cnblogs.com/double-win/p/3793293.html , 全排列的升级版,可能出现重复数字。
class Solution {
public:
vector<vector<int> > ans;
vector<int> print;
vector<int> mark;
int length;
void DFS(int len,vector<int> &num){
if(len==length)
{
ans.push_back(print);
return;
}
for(int i=;i<length;i++)
{
if(mark[i]==)
{
print[len]= num[i];
mark[i]=;
DFS(len+,num);
mark[i]=;
}
}
}
vector<vector<int> > permute(vector<int> &num) {
length=num.size();
ans.clear();
if(length<=) return ans;
print.clear();
print.resize(length);
mark.clear();
mark.resize(length);
DFS(,num);
return ans;
}
};
转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!
最新文章
- Android中的自定义控件(二)
- Add Two Numbers (c#)
- 从两个平方算法到分治算法-java
- Android You need to use a Theme.AppCompat theme (or descendant) with this activity.
- SpringMVC——form标签的使用
- 《深入理解Nginx》阅读与实践(三):使用upstream和subrequest访问第三方服务
- mysql服务器io等待高定位与分析
- linux下notify机制(仅用于内核模块之间的通信)
- iOS FMDB官方使用文档 G-C-D的使用 提高性能(翻译)(转)
- JavaScript中数组操作
- mssql 获取表结构信息
- poj 2513Colored Sticks
- Canvas API -- JavaScript 标准参考教程(alpha)
- Xcode使用小结1
- FineReport父子格实现动态参数注入
- Windows自定义运行命令
- (4)top详解 (每周一个linux命令系列)
- 2019.03.24 Ajax
- 使用telnet模拟邮件的收发
- MySql多个count查询