LeetCode 046 Permutations 全排列「建议收藏」

LeetCode 046 Permutations 全排列「建议收藏」Givenacollectionofdistinctnumbers,returnallpossiblepermutations.Forexample,[1,2,3]havethefollowingpermutations:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]方法一:1c…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Given a collection of distinct 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],
  [3,2,1]
]

方法一:

 1 class Solution {
 2 public:
 3      vector<vector<int> > permute(vector<int> &num) {
 4         vector<vector<int> > res;
 5         vector<int> out;
 6         int size=num.size();
 7         if(size==0||num.empty())
 8             return res;
 9         helper(num, 0,size, out, res);
10         return res;
11     }
12     void helper(vector<int> &num,int start,int size,vector<int> &out,vector<vector<int>> &res)
13     {
14         if(start==size-1)
15         {
16             for(int i=0;i<size;++i)
17                 out.push_back(num[i]);
18             res.push_back(out);
19             out.clear();
20         }
21         else
22         {
23             for(int i=start;i<size;++i)
24             {
25                 swap(num,start,i);
26                 helper(num,start+1,size,out,res);
27                 swap(num,start,i);
28             }
29         }
30     }
31     void swap(vector<int> &num,int i,int j)
32     {
33         int tmp=num[i];
34         num[i]=num[j];
35         num[j]=tmp;
36     }
37 };

 方法二:

 1 class Solution {
 2 public:
 3     vector<vector<int>> permute(vector<int>& nums) {
 4         vector<vector<int>> res;
 5         helper(nums,0,res);
 6         return res;
 7     }
 8     void helper(vector<int> num,int start,vector<vector<int>> &res)
 9     {
10         if(start==num.size())
11         {
12             res.push_back(num);
13             return;
14         }
15         for(int k=start;k<num.size();++k)
16         {
17             swap(num[start],num[k]);
18             helper(num,start+1,res);
19         }
20     }
21 };

 

转载于:https://www.cnblogs.com/xidian2014/p/8652384.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191440.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月1日 上午9:43
下一篇 2026年2月1日 上午10:15


相关推荐

  • 模式识别:感知器的实现

    模式识别:感知器的实现在之前的模式识别研究中 判别函数 J 的参数是已知的 即假设概率密度函数的参数形式已知 本节不考虑概率密度函数的确切形式 使用非参数化的方法来求解判别函数 由于线性判别函数具有许多优良的特性 因此这里我们只考虑以下形式的判别函数 它们或者是 x 的各个分量的线性函数 或者是关于以 x 为自变量的某些函数的线性函数

    2026年3月9日
    2
  • 批量修改文件名中的部分文字

    批量修改文件名中的部分文字今天就为大家详细说一说 批量修改文件名中的部分文字的方法 用来这个方法不管你有多少个文件需要处理 都只要很短的时间

    2026年3月19日
    2
  • bullet HashMap 内存紧密的哈希表

    bullet HashMap 内存紧密的哈希表

    2022年2月1日
    46
  • 电视处理器a53和a55哪个厉害(cortexa55处理器好吗)

    小编语:手机处理器从32位向64位的迁移过程中,功耗增加以及给手机厂商带来的散热成为一个很大的问题。目前Cortex-A57已经是64位手机处理器芯片的主流内核,它的功耗不降下来,更多手机功能的开发可能受限于系统总功耗而无法实现,ARM这次推出的Cortex-A35显然在这方面下了不少功夫,究竟能给手机厂商带来多少实惠,还要等终端产品推出后才见分晓……64位元处理器应用版图…

    2022年4月13日
    752
  • class jqprint 失效_jQuery打印插件jqprint

    class jqprint 失效_jQuery打印插件jqprint插件描述 一个通过单击页面按钮 便实现页面打印的 jQuery 插件 jqprint 2017 2 17 更新 修改 jQuery 官方提供迁移辅助插件 jquery migrate 1 0 0 js 失效地址 请注意 很多朋友遇到 Cannotreadpr opera ofundefined 错误问题是 juqery 版本兼容问题解决方法 加入迁移辅助插件 jquery migrate 1 0 0

    2026年3月18日
    2
  • 使计算机成为主流的10位计算机科学家

    使计算机成为主流的10位计算机科学家这些科学家为该领域做出了重大贡献 并将因其工作而永远铭记在心 这是创造历史的 10 位计算机科学家 1 艾伦 图灵艾伦 图灵 AlanTuring 是一位英国计算机科学家 被广泛认为是计算机科学之父 久负盛名的 图灵奖 以他的名字命名 该奖项授予计算机科学领域的杰出贡献者 图灵为英国政府服务 在激活成功教程被截获的编码信息以及使盟军在许多关键活动中击败纳粹方面发挥了关键作用 尽管他的工作

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号