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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021.12.13激活码(JetBrains全家桶)

    (2021.12.13激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~00OE5RWT28-eyJsaWNlb…

    2022年3月30日
    60
  • native DRAMAtical Murder_project diablo 2

    native DRAMAtical Murder_project diablo 2投影投影是JMESPath的关键特性之一。它允许您将表达式应用于元素集合。有五种投影:列表投影切片投影对象投影展平投影过滤投影处理投影需要注意的点投影分为两个步骤。左侧(LHS)创建一

    2022年7月29日
    8
  • JPA语法大全 特别是JPA的不等于[通俗易懂]

    JPA语法大全 特别是JPA的不等于[通俗易懂]JPA语法大全(特别是JPA的!=不等于)Keyword:为关键词Sample:为直接用在方法名上的例子JPQLsnipper:为JPQL,@Query的写法的例子

    2022年8月31日
    5
  • JS数组合并(5种)

    JS数组合并(5种)前言项目过程中,经常会遇到JS数组合并的情况,时常为这个纠结。这里整理一下。简单而实用的for最容易想到的莫过于for了。会变更原数组,当然也可以写成生成新数组的形式。letarr=[1,2]letarr2=[3,4]for(letiinarr2){arr.push(arr2[i])}console.log(arr)//[1,2,3,4]arr.concat(arr2)会生成新的数组。letarr=[1,2]let

    2022年6月30日
    47
  • ORACLE控制处理函数COALESCE()和NVL()

    ORACLE控制处理函数COALESCE()和NVL()1.语法COALESCE(expression,value1,value2……,valuen)2.说明主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE(expression,value1,value2……,valuen)COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。

    2022年7月13日
    19
  • plsql13连接oracle配置_plsql developer配置数据库连接

    plsql13连接oracle配置_plsql developer配置数据库连接由于硬件技术的不断更新,Win7系统逐渐成为主流,而且计算机内存逐渐增大,为了充分的利用内存资源(因为32为系统最多只能用到3G左右的内存),提高系统性能,很多人开始使用Win7(64Bit)的系统。在64位系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQLDeveloper,此时就不能使用PL/SQLDeveloper来进行直接连接的,所以要想实现连接还得需要其他途径来完

    2022年10月12日
    3

发表回复

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

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