Leetcode: 46. Permutations 全排列
发布日期:2021-09-14 15:32:59 浏览次数:13 分类:技术文章

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

Permutations 全排列

给定一个没有重复数字的序列,返回其所有可能的全排列。

输入:

[1,2,3]

输出:

[  [1,2,3],  [1,3,2],  [2,1,3],  [2,3,1],  [3,1,2],  [3,2,1]]

解法1:递归

vector
> permute(vector
& num) {
vector
> res; vector
out, visited(num.size(), 0); helper(num, 0, visited, out, res); return res; } void helper(vector
& num, int level, vector
& visited, vector
& out, vector
>& res) { if (level == num.size()) { res.push_back(out); return;} for (int i = 0; i < num.size(); ++i) { if (visited[i] == 1) continue; visited[i] = 1; out.push_back(num[i]); helper(num, level + 1, visited, out, res); out.pop_back();//完成一次递归后清零 visited[i] = 0;//完成一次递归后清零 } }

转载地址:https://blog.csdn.net/weixin_42490152/article/details/100942059 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Leetcode: 47. Permutations II 全排列 II
下一篇:Leetcode: 232. Implement Queue using Stacks 两个栈实现队列

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月27日 23时25分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章