题解 | #没有重复项数字的全排列#

没有重复项数字的全排列

https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1

import java.util.*;

public class Solution {
    //全局变量 避免在参数中传递 麻烦
     ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();

    public ArrayList<ArrayList<Integer>> permute(int[] num) {
        
        //存在的情况
       ArrayList<Integer> list = new ArrayList<>();

        dfs(num,list);
        return res;
    }

    public void dfs(int []num , ArrayList<Integer>  list){
        //如果长度已满 停止递归。
        if( list.size() == num.length){
            //所有的操作都是操作的list 返回要返回一个新的
            res.add(new ArrayList<>(list));
            return ;
        }

        //如果长度每满 则要进行递归操作了
        for(int i = 0 ; i < num.length ; i++){
             if(list.contains(num[i]))
                continue;

             list.add(num[i]);
             dfs(num,list);
             list.remove(list.size()-1);
        }


    }
}

全部评论

相关推荐

02-14 15:34
门头沟学院 Java
Java抽象带篮子:专业技能怎么写可以看看我发的帖子
点赞 评论 收藏
分享
02-21 23:22
已编辑
重庆大学 Java
神哥不得了:神哥来啦~还是非常不错的。需要注意的是项目的话建议把编号换一下,把前面那个一和二删掉,然后再把123那种换成点,项目的话应该用这两个项目也问题不大,毕竟你的学历还是挺好的,如果换上两个高质量项目的话,获得面试的比例会大一点,不过这两个项目的话应该吃透,也可以找到面试,八股的话就建议先把高频top50的八股多巩固几遍,别看那些假高频题目就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务