当前位置: 首页 > news >正文

day-45 全排列

在这里插入图片描述
思路
递归调用dfs,利用一个数组来表示当前位置是否已经被选中,如果没有则选中当前数字,num+1(num表示已经选中数字个数),每当num==nums.length时,将List加入答案

解题过程
注意:使用num+1作为传参,不要num++(num++是先传参,再++)

Code

class Solution {public List<List<Integer>> list=new ArrayList<>();public int len;public int choose[];public List<List<Integer>> permute(int[] nums) {len=nums.length;choose=new int[len];Arrays.fill(choose,1);List<Integer> p=new ArrayList<>();dfs(p,0,nums);return list;}public void dfs(List<Integer> p,int num,int[] arr){if(num==len){list.add(new ArrayList(p));return;}for(int j=0;j<len;j++){if(choose[j]!=-1){choose[j]=-1;p.add(arr[j]);choose[j]=-1;dfs(p,num+1,arr);p.remove(p.size()-1);choose[j]=1;}}}
}作者:菜卷
链接:https://leetcode.cn/problems/permutations/solutions/2899311/quan-pai-lie-by-ashi-jian-chong-dan-liao-br1q/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.mrgr.cn/news/16671.html

相关文章:

  • ffmpeg源码分析(六)内存管理
  • 类图的关联关系
  • (备份)常用ASCII 8*8 点阵 以及查询显示字符的点阵
  • AI模型:追求全能还是专精?
  • 写给LLM新手的建议,让你少走2年弯路!
  • Day53 | Bellman_ford 队列优化算法(又名SPFA)bellman_ford之判断负权回路 bellman_ford之单源有限最短路
  • Python---包和模块
  • MySQL锁机制的介绍
  • 推理引擎测试-算力共享:test_inference_engine
  • 消息中间件:深入理解 Kafka的消息顺序和一致性、可靠性和高可用性 第1版
  • X86架构(六)——硬盘访问与控制
  • 【百日算法计划】:每日一题,见证成长(006)
  • 客流预测 | 基于Transformer下车站点客流推断研究(Matlab)
  • RK3568笔记五十八:基于SIP的视频通话测试
  • Multi-UAV|多无人机、多场景路径规划MATLAB
  • nuxt3模拟手机验证码
  • 大模型好书案例——《BERT基础教程:Transformer大模型实战》(附PDF)
  • HarmonyOS应用开发者基础认证 | <HarmonyOS第一课>习题-ArkTS语法
  • LTspice 的简单使用【软件使用学习】
  • 如何在JPG文件中隐写数据