题解 | #所有的打乱情况#

所有的打乱情况

https://www.nowcoder.com/practice/ebf1466cc6e045c0859c92b3bb3a161c

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param original int整型一维数组 
     * @return int整型二维数组
     */
    public int[][] getAllShuffles (int[] original) {
        // write code here
        int n=original.length;
        Arrays.sort(original);
        List<List<Integer>> res=new ArrayList<>();
        List<Integer> temp=new ArrayList<>();
        boolean[] flag=new boolean[original.length];
        tracback(res,flag,temp,original);
        int[][] ans=new int[res.size()][original.length];
        for(int i=0;i<res.size();i++){
            for(int j=0;j<original.length;j++){
                ans[i][j]=res.get(i).get(j);
            }
        }
        return ans;
    }
    public void tracback(List<List<Integer>> res,boolean[] flag,List<Integer> temp,int[] original){
        if(temp.size()==original.length){
            res.add(new ArrayList<>(temp));
            return;
        }
        for(int i=0;i<original.length;i++){
            if(flag[i]==false){
                temp.add(original[i]);
                flag[i]=true;
                tracback(res,flag,temp,original);
                flag[i]=false;
                temp.remove(temp.size()-1);
            }
        }
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
“校招”、“3-5年经验”
xiaolihuam...:逆向工程不是搞外挂的吗,好像现在大学生坐牢最多的就是诈骗罪和非法侵入计算机系统罪,发美金,还居家办公,就是怕被一锅端,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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