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

没有重复项数字的全排列

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


    }
}

全部评论

相关推荐

可可可可可_:nb啊,看样子是专科玩了几年随便专升本了个民办,又玩了两年。你这能找到我吃
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务