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

没有重复项数字的全排列

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


    }
}

全部评论

相关推荐

06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
第一份工作能做外包吗?
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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