Leetcode: 47. Permutations II 全排列
发布日期:2021-09-14 15:33:15 浏览次数:3 分类:技术文章

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

Permutations II 全排列

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


输入:

[1,2,1]

输出:

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

方法一:回溯

在46题的基础上增加去重即可
1.排序sort(nums.begin(),nums.end());
2.去重if(i>0&&nums[i]==nums[i-1]&&visited[i-1]==1) continue;

class Solution {
public: vector
> permuteUnique(vector
& nums) {
vector
>res; vector
out,visited(nums.size(),0); sort(nums.begin(),nums.end()); bfs(out,0,nums,visited,res); return res; } void bfs(vector
& out,int level,vector
& nums,vector
& visited,vector
>& res){ if(level==nums.size()) { res.push_back(out);return; } for(int i=0;i
0&&nums[i]==nums[i-1]&&visited[i-1]==1) continue; visited[i]=1; out.push_back(nums[i]); bfs(out,level+1,nums,visited,res); out.pop_back();//完成一次递归之后清零 visited[i]=0;//完成一次递归之后清零 } }};

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

上一篇:Leetcode: 53.Maximum Subarray 最大子序和
下一篇:Leetcode: 46. Permutations全排列

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月15日 09时32分47秒