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

没有重复项数字的全排列

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


    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
07-10 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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