穷举vs暴搜vs深搜vs回溯vs剪枝
2023-12-29 19:41:11
欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:题目大解析(3)
目录
👉🏻全排列
原题链接:全排列
mycode:
class Solution {
public:
vector<vector<int>> ret;
vector<int> path;
bool check[7];//检查该位置是否被用过了,true说明被用过了
void dfs(vector<int>& nums)
{
if(nums.size()==path.size())//说明此时已经组成一个序列了
{
ret.push_back(path);
return;
}
for(int i = 0;i<nums.size();i++)
{
if(check[i]==false)//此时还没被用过
{
path.push_back(nums[i]);
check[i] = true;
dfs(nums);
//回溯清空现场,将dfs下层插入的元素pop掉
path.pop_back();
check[i] = false;
}
}
}
vector<vector<int>> permute(vector<int>& nums) {
dfs(nums);
return ret;
}
};
文章来源:https://blog.csdn.net/cefler/article/details/135295464
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!