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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vscode自动生成html模板_vscode html插件

    vscode自动生成html模板_vscode html插件初学vue,不熟练使用vscode。发现vscode不能新建文件夹,必须从外部建好之后,在文件–打开文件夹中打开。然后在资源管理器中就可以新建文件或者文件夹了。新建文件后缀写html格式,则就是html文件。然后输入英文的!+tab键即可,或者是输入html:5+tab键。…

  • 关于java类加载正确的是_java运行无法加载主类

    关于java类加载正确的是_java运行无法加载主类注意我们当在另一个类中引用其他类的final静态值的时候,编译器把其他类的final符号引用存储在自己类的常量池中了

  • java.util.scanner sc_Java的Scanner sc=new Scanner(System.in)是什么意思「建议收藏」

    java.util.scanner sc_Java的Scanner sc=new Scanner(System.in)是什么意思「建议收藏」展开全部当通过newScanner(System.in)创建一个Scanner,控制台会一直等待输入,62616964757a686964616fe58685e5aeb931333433653935直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。例:importjava.util.Scanner;…

  • 搭建邮件服务器,过程非常简单「建议收藏」

    搭建邮件服务器,过程非常简单,只需几个步骤即可。通常在Linux搭建邮件服务器是需要安装很多软件和配置文件的,所以我们可以使用一个开源邮件服务器软件来搭建的。

  • 反射之invoke方法

    反射之invoke方法当获得类对应的Class对象后,可以通过getMethods()方法得到全部方法——返回Method数组,或者getMethod()方法来获取指定方法——Method对象。可以通过Method对象的invoke()方法来调用它对应的方法。Objectinvoke(Objectobj,Object…args):obj是执行该方法的Class对象,args是执行该方法时传入的实参。

  • h3c路由器配置命令_h3c路由器命令大全

    h3c路由器配置命令_h3c路由器命令大全en进入特权模式conf进入全局配置模式ins0进入serial0端口配置ipaddxxx.xxx.xxx.xxxxxx.xxx.xxx.xxx添加ip地址和掩码,电信分配encahdlc/ppp捆绑链路协议hdlc或者pppipunne0exit回到全局配置模式ine0进入以太接口配置ipaddxxx.xxx.xxx.xxxxxx.xxx.xxx…

    2022年10月18日

发表回复

您的电子邮箱地址不会被公开。

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