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


相关推荐

  • flashfxp注册码

    flashfxp注册码FlashFXP4.0注册码key(通用):——–FlashFXPRegistrationDataSTART——–FLASHFXPVENSVURFnQEAAAGGZJcQuuC6/Znb915ltgBNBmXkEQhOgVxpo/z4OJEIfnjjL/LLDCQbiZE9+N8EbDIQP/sQQf5D+faH6owMEG7/wINp3590f9jk462O98CWS

    2022年7月26日
    11
  • maven环境变量配置详细步骤(win10)

    maven环境变量配置详细步骤(win10)一、前言最近更新了系统,maven也想了想也需要装个新版本了,去下载了新版本,记录下maven的安装配置,初学小伙伴可以看看。安装前确认已经安装好了JDK,没有安装或下载的小伙伴可以参考我另外一篇文章原创jdk1.8下载与安装教程(win10),其它版本类似。安文件大家可以自己去官网下载,也可以直接在下面到我的网盘下载,官网向来下载速度都比较慢。目前版本是3.6.3版本,有新版本我也…

    2022年7月24日
    11
  • JAVA增强for循环

    JAVA增强for循环增强for循环为什么需要增强for循环呢?简化数组和集合的遍历。想要使用增强for循环必须先要了解它的格式增强for循环的格式for(数据类型变量名:数组或者集合对象){ //循环体,变量即元素}下边我们通过案例演示一下://需求通过增强for遍历list集合。publicstaticvoidmain(String[]args){ //复习一下如何创建List集合 //1.创建元素对象 Listlist=newArrayList(); }…

    2022年6月16日
    40
  • 平板远程控制电脑_平板远程桌面

    平板远程控制电脑_平板远程桌面当下的局势,移动办公已经成为主流,远程控制工具也成为了我们日常办公不可或缺的软件。

    2025年8月22日
    1
  • idea2019永久激活注册码3月最新在线激活

    idea2019永久激活注册码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    140
  • Spring中bean的作用域与生命周期

    Spring中bean的作用域与生命周期在Spring中,那些组成应用程序的主体及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean的定义以及bean相互间的依赖关系将通过配置元数据来描述。  Spring中的bean默认都是单例的,这些单例Bean在多线程程序下如何保证线程安全呢?例如对于Web应用来

    2022年4月30日
    58

发表回复

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

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