1. 题目

2. 解答

给定一个序列,序列中的任意一个数字都可以作为全排列的最后一位。然后,其余位置元素的确定便是剩余元素的一个全排列,也就是一个子问题。

例子中 [1, 2, 3] 的全排列,最后一位可以是 1 或者 2 或者 3。如果最后一位是 3,前两位便是 [1, 2] 的全排列。

我们用递归来实现,变量 k 一开始为序列的长度,每次求解子问题的时候减一。递归终止条件为 k=1,一个元素的全排列只有它自己。

class Solution {public:vector<vector<int>> result;vector<vector<int>> permute(vector<int>& nums) {int n = nums.size();Generate_Premutations(nums, n, n);return result;}void Generate_Premutations(vector<int>& nums, int n, int k){if (k == 1){result.push_back(nums);return;}// 任何一个数字都可以作为全排列的最后一位for (int i = 0; i < k; i++){int temp = nums[i];nums[i] = nums[k-1];nums[k-1] = temp;// 最后一位数字确定后,余下的是一个全排列的子问题Generate_Premutations(nums, n, k-1);// 恢复原数组temp = nums[i];nums[i] = nums[k-1];nums[k-1] = temp;}}
};

获取更多精彩,请关注「seniusen」!

LeetCode 46——全排列相关推荐

  1. LeetCode 46. 全排列(回溯)

    文章目录 1. 题目信息 2. 解题 2.1 利用hash map解决 2.2 改用bool数组判断是否出现过 1. 题目信息 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例:输入: [1 ...

  2. leetcode —— 46. 全排列(递归+回溯)

    给定一个 没有重复 数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2 ...

  3. leetcode - 46. 全排列(对vector容器的元素进行搜索,判断是否存在vector中)

    给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1 ...

  4. LeetCode 46.全排列

    题目描述: 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], ...

  5. leetcode 46 全排列

    难度:中等 频次:119 题目: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 解题思路:回溯遍历 class Solution {public ...

  6. Leetcode 46.全排列 (每日一题 20210621)

    给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案.示例 1:输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3], ...

  7. leetcode 46. 全排列 思考分析

    目录 1.题目 2.思考 3.优化 1.题目 给定一个 没有重复 数字的序列,返回其所有可能的全排列. 2.思考 老规矩,先画出给出的例子的解空间树: 观察我们可以发现: 1.深度向下一层深入时,出现 ...

  8. leetcode — 46. 全排列(不含重复数字)

    给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3 ...

  9. LeetCode 46. 全排列 Permutations

    给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] ] 您是 ...

最新文章

  1. python类和对象课件_简单解释Python的类和对象
  2. Android之ksoap2-android详解与调用天气预报Webservice完整实例
  3. bat maven 一键打包 3.0
  4. java学习笔记(六)----对象的类型转换, 匿名内置类
  5. netty 管道和handler的加载和处理流程
  6. 独立成分分析ICA系列4:ICA的最优估计方法综述
  7. Python的Pexpect库
  8. 什么是php的ast结构,什么是AST?Vue源码中AST语法树的解析
  9. python学习第29天
  10. 为什么表格后面打不出0_同样的LOL游戏,为什么BO5和BO3的结局差距如此之大?...
  11. python多线程 _thread没有上lock时程序提前给你把可执行的都执行,不按代码编写顺序执行
  12. 充电枪cp信号控制板_比亚迪E5无法交流充电故障检修
  13. 川轻化c语言实验答案,C语言实验目().doc
  14. Linux程序设计(常用Linux命令)
  15. 你学习·我奖励,21天学习挑战赛 | 等你来战
  16. 第1节 细胞是生命活动的基本单位
  17. 在训练的时候loss增大怎么办
  18. springboot+基于Web的开关柜综合监测信息查询系统的设计与实现 毕业设计-附源码191550
  19. 实验一:Cifar10图像分类竞赛 学习记录
  20. java-php-python-ssm-心灵治愈服务平台-计算机毕业设计

热门文章

  1. 25岁,人生规划(职场第二个三年)(理论)
  2. HTML标签学习---第二天
  3. java 动态数组_Java动态数组的用法详解
  4. MotionEvent 详解
  5. 室内P2全彩LED高清显示屏做多大面积分辨率有2K(1920*1080)
  6. 吸血鬼猎人巴菲第一至八季/全集Buffy迅雷下载
  7. java split 返回值_java中Split函数的使用方法
  8. 小程序获取token 45009 reach max api daily quota limit hint
  9. sklearn实现随机森林(分类算法)
  10. 自媒体头条号平台的消重机制,你了解了吗?