您现在的位置是:首页 > 编程 > 

全排列 II(C++)

2025-07-23 10:03:09
全排列 II(C++) 全排列 II难度中等1197收藏分享切换为英文接收动态反馈给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:代码语言:javascript代码运行次数:0运行复制输入: nums = [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]]示例 2:代码语言:javascript代码运行次数:0运行复制输入:

全排列 II(C++)

全排列 II

难度中等1197收藏分享切换为英文接收动态反馈

给定一个可包含重复数字的序列 nums按任意顺序 返回所有不重复的全排列。

示例 1:

代码语言:javascript代码运行次数:0运行复制
输入: nums = [1,1,2]
输出:
[[1,1,2],
 [1,2,1],
 [2,1,1]]

示例 2:

代码语言:javascript代码运行次数:0运行复制
输入: nums = [1,2,]
输出: [[1,2,],[1,,2],[2,1,],[2,,1],[,1,2],[,2,1]]

提示:

  • 1 <= nums.length <= 8
  • -10 <= nums[i] <= 10

我的代码:

代码语言:javascript代码运行次数:0运行复制
// 全排列是dfs的入门题
class Solution {
private:
   set<vector<int> >res;
   vector<int> v;
   
public:
   vector<vector<int>> permuteUnique(vector<int>& nums) {
       bool st[nums.size() + 10];
       for (int i = 0; i < nums.size() + 10; ++ i) st[i] = false;
       dfs(0, nums.size(), st, nums);
       vector<vector<int> > last_res(res.begin(), ());
       return last_res;
   }
   void dfs (int u, int n, bool st[], vector<int>& nums)
   {
       if (u == n)
       {
           res.insert(v);
           return;
       }
       for (int i = 0; i < n; ++ i)
       {
           if (!st[i])
           {
               st[i] = true;
               v.push_back(nums[i]);                
               dfs (u + 1, n, st, nums);
               v.pop_back();
               st[i] = false;
           }
       }
   }
};

对应我的掘金文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-12-06,如有侵权请联系 cloudcommunity@tencent 删除intvector入门c++dfs

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1160593.html

相关标签:无
上传时间: 2025-07-20 14:15:10

上一篇:全排列(C++)

下一篇:字母异位词分组(C++)

留言与评论(共有 19 条评论)
本站网友 替硝唑片说明书
29分钟前 发表
2]
本站网友 探雷针
30分钟前 发表
本站网友 长沙拓展培训
18分钟前 发表
[2
本站网友 tpp是什么意思
7分钟前 发表
1
本站网友 输入法无法切换
26分钟前 发表
2
本站网友 工行纸白银价格走势
30分钟前 发表
1]
本站网友 中医治疗肝硬化
15分钟前 发表
1]
本站网友 武汉网吧转让
25分钟前 发表
1
本站网友 北湖区政府网
3分钟前 发表
本站网友 品牌电动车
16分钟前 发表
全排列 II(C++) 全排列 II难度中等1197收藏分享切换为英文接收动态反馈给定一个可包含重复数字的序列 nums
本站网友 构菌
11分钟前 发表
[2
本站网友 吴铭火锅团购
5分钟前 发表
bool st[]
本站网友 上海徐汇区租房
26分钟前 发表
[2
本站网友 盐城团购网
20分钟前 发表
1]]提示:1 <= nums.length <= 8-10 <= nums[i] <= 10我的代码:代码语言:javascript代码运行次数:0运行复制// 全排列是dfs的入门题 class Solution { private
本站网友 10月10号
29分钟前 发表
vector<int>& nums) { if (u == n) { res.insert(v); return; } for (int i = 0; i < n; ++ i) { if (!st[i]) { st[i] = true; v.push_back(nums[i]); dfs (u + 1
本站网友 上海比朗仪器有限公司
22分钟前 发表
原始发表:2022-12-06
本站网友 怎么美白牙齿
3分钟前 发表
2] 输出: [[1
本站网友 证券分析格雷厄姆
22分钟前 发表
示例 1:代码语言:javascript代码运行次数:0运行复制输入: nums = [1