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

没有重复项数字的全排列

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);
        }


    }
}

全部评论

相关推荐

轻絵梨花泪沾衣:南泵,大少爷驾到通通闪开
点赞 评论 收藏
分享
10-09 19:08
已编辑
门头沟学院 Java
后端转测开第一人:换个模版 技术栈写的精炼紧凑一点 多投就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务