leetcode 46 全排列
难度:中等
频次: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 全排列相关推荐
- LeetCode 46. 全排列(回溯)
文章目录 1. 题目信息 2. 解题 2.1 利用hash map解决 2.2 改用bool数组判断是否出现过 1. 题目信息 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例:输入: [1 ...
- leetcode —— 46. 全排列(递归+回溯)
给定一个 没有重复 数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2 ...
- 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 ...
- LeetCode 46.全排列
题目描述: 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], ...
- Leetcode 46.全排列 (每日一题 20210621)
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案.示例 1:输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3], ...
- leetcode 46. 全排列 思考分析
目录 1.题目 2.思考 3.优化 1.题目 给定一个 没有重复 数字的序列,返回其所有可能的全排列. 2.思考 老规矩,先画出给出的例子的解空间树: 观察我们可以发现: 1.深度向下一层深入时,出现 ...
- leetcode — 46. 全排列(不含重复数字)
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3 ...
- LeetCode 46. 全排列 Permutations
给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] ] 您是 ...
- LeetCode 46——全排列
1. 题目 2. 解答 给定一个序列,序列中的任意一个数字都可以作为全排列的最后一位.然后,其余位置元素的确定便是剩余元素的一个全排列,也就是一个子问题. 例子中 [1, 2, 3] 的全排列,最后一 ...
最新文章
- 科大星云诗社动态20210905
- CentOS 7.5 使用 yum 安装 Kubernetes 集群(二)
- nagios 监控配置介绍(二)
- ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard
- em算法怎么对应原有分类_机器学习基础-EM算法
- swt 键盘事件ctrl+c_VB键盘事件详解
- 在Microsoft VS.net 2005下开发Linux环境的网站应用
- 开课吧:AI改变就业市场的方式有哪些?
- SSCLI中GC源码分析(1) - EE与BCL之间的调用接口FCall
- pandas—pd.merge通过键来联接数据集
- 专家系统是一种智能计算机软件系统,人工智能习题答案-第6篇-专家系统.pdf
- DDS(Direct Digital Synthesizer)数字频率合成器
- 直插电阻的分类和区别
- matlab ga工具箱 使用教程,MATLAB7.0 GA工具箱详细讲解及实例演示.pdf
- 游戏音乐制作中需要使用那些软件?
- 假期最后一天!Go1.16 重磅发布,新版本特性一览
- MySQL中实现rank排名查询以及在Mybatis中使用 mysql 的自定义变量 @的问题解决
- Kafka的生产者,消费者JavaApi操作实例
- 微信小程序tab选项卡,点击弹窗(带蒙版)五星好评-获取微信手机号码
- Flutter 功能最全的JsonToDart工具(桌面Web海陆空支持)