难度:中等
频次:119

题目:
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

解题思路:回溯遍历

class Solution {public List<List<Integer>> permute(int[] nums) {//数组长度、数子个数int len=nums.length;//创建最终结果 resList<List<Integer>> res=new ArrayList<>();//如果数组长度为0,那就不用排列了if(len==0) return res;//将path放在deque里,是因为Deque可以取出前后Deque<Integer> path=new ArrayDeque<>(len);//标记的flag,如果这个数字用过了,那就标记为1,还没用过就为0 boolean[] flag=new  boolean[len];//DFS遍历  其实就是做LEN次DFS遍历DFS(nums,len,0,path,flag,res);return  res;}public void DFS(int[] nums,int len,int depth,Deque<Integer> path, boolean[] flag, List<List<Integer>> res){if(len==depth){res.add(new ArrayList<>(path));return ;}//len次遍历在这里凸显出来 || 以及一个DFS树len个元素也在这里凸显for(int i=0;i<len;i++){//如果flag是0,也就是这个数字还没用过if(!flag[i]){//没用过就把这个数字拿来用以下path.addLast(nums[i]);//根节点flag[i]=true;DFS(nums,len,depth+1,path,flag,res);flag[i]=false;path.removeLast();}}}
}

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.全排列 (每日一题 20210621)

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

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

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

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

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

  8. LeetCode 46. 全排列 Permutations

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

  9. LeetCode 46——全排列

    1. 题目 2. 解答 给定一个序列,序列中的任意一个数字都可以作为全排列的最后一位.然后,其余位置元素的确定便是剩余元素的一个全排列,也就是一个子问题. 例子中 [1, 2, 3] 的全排列,最后一 ...

最新文章

  1. 科大星云诗社动态20210905
  2. CentOS 7.5 使用 yum 安装 Kubernetes 集群(二)
  3. nagios 监控配置介绍(二)
  4. ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard
  5. em算法怎么对应原有分类_机器学习基础-EM算法
  6. swt 键盘事件ctrl+c_VB键盘事件详解
  7. 在Microsoft VS.net 2005下开发Linux环境的网站应用
  8. 开课吧:AI改变就业市场的方式有哪些?
  9. SSCLI中GC源码分析(1) - EE与BCL之间的调用接口FCall
  10. pandas—pd.merge通过键来联接数据集
  11. 专家系统是一种智能计算机软件系统,人工智能习题答案-第6篇-专家系统.pdf
  12. DDS(Direct Digital Synthesizer)数字频率合成器
  13. 直插电阻的分类和区别
  14. matlab ga工具箱 使用教程,MATLAB7.0 GA工具箱详细讲解及实例演示.pdf
  15. 游戏音乐制作中需要使用那些软件?
  16. 假期最后一天!Go1.16 重磅发布,新版本特性一览
  17. MySQL中实现rank排名查询以及在Mybatis中使用 mysql 的自定义变量 @的问题解决
  18. Kafka的生产者,消费者JavaApi操作实例
  19. 微信小程序tab选项卡,点击弹窗(带蒙版)五星好评-获取微信手机号码
  20. Flutter 功能最全的JsonToDart工具(桌面Web海陆空支持)

热门文章

  1. 使用Intellij IDEA 14.0.2 编译项目耗时特别长的问题
  2. oracle易忘函数用法(3)
  3. 金山卫士UI原理解析(2)CBkWindow
  4. 配置Apache2.2+PHP5+CakePHP1.2+MySQL5
  5. Flash中如何使用滤镜
  6. js里规定输入的数值只能是数字
  7. 程序注释应该注意的地方
  8. java 科学计算法
  9. PHP 实现代码复用的一个方法 traits新特性
  10. 在CentOS7.2上部署基于PostgreSQL10的citus分布式数据库