欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

leetcode46全排列

时间:2023-06-14

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

解题思路:回溯遍历

class Solution { public List> permute(int[] nums) { //数组长度、数子个数 int len=nums.length; //创建最终结果 res List> res=new ArrayList<>(); //如果数组长度为0,那就不用排列了 if(len==0) return res; //将path放在deque里,是因为Deque可以取出前后 Deque 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 path, boolean[] flag , List> res){ if(len==depth){ res.add(new ArrayList<>(path)); return ; } //len次遍历在这里凸显出来 || 以及一个DFS树len个元素也在这里凸显 for(int i=0;i

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。