题解 | #牛群的特殊分组#

牛群的特殊分组

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型二维数组
     */
    public int[][] special_groups (int[] nums) {
        // write code here
        List<List<Integer>> res=new ArrayList<>();
        List<Integer> temp=new ArrayList<>();
        Arrays.sort(nums);
        boolean[] flag=new boolean[nums.length];
        backtrace(res,temp,flag,nums,0);
        int[][] ans=new int[res.size()][];
        for(int i=0;i<res.size();i++){
		    //此处要申请空间,否则会报错
            ans[i]=new int[res.get(i).size()];
            for(int j=0;j<res.get(i).size();j++){
                ans[i][j]=res.get(i).get(j);
            }
        }
        return ans;
    }
    public void backtrace(List<List<Integer>> res,List<Integer> temp,boolean[] flag,int[] nums,int start){
        if(temp.size()>0){
            res.add(new ArrayList<>(temp));
            //这个地方不要return
        }
        for(int i=start;i<nums.length;i++){
            if(i>0&&nums[i-1]==nums[i]&&flag[i-1]==false) continue;
            if(flag[i]==false){
                temp.add(nums[i]);
                flag[i]=true;
                backtrace(res,temp,flag,nums,i+1);
                flag[i]=false;
                temp.remove(temp.size()-1);
            }
        }
    }
}

全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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