华为机试

这道应该是二星题,我用的深搜过了 45%,还可以用其他的办法来做吗,谢谢大佬们。
#华为##笔试题目#
全部评论
感觉像并查集呀
1 回复
分享
发布于 2021-04-04 23:04
我有一个思路 不知道行不行 一共四十种   boolean[4] [10] 0-9 第一个颜色 10-19 第二个颜色 20-29第三个颜色 30-39第四个颜色 将存在的牌 boolean[颜色][数字]=true; 然后行 列 求和就行
点赞 回复
分享
发布于 2021-03-28 21:54
饿了么
校招火热招聘中
官网直投
我试用动态规划做了一下,还行。T(n)=max1..n{T(n-1)+1},时间复杂度没分析
点赞 回复
分享
发布于 2021-03-30 21:56
感觉可以用并查集来处理
点赞 回复
分享
发布于 2021-03-31 12:55
n叉树遍历所有结果取最大深度可以吗?
点赞 回复
分享
发布于 2021-03-31 15:05
建图求最长路
点赞 回复
分享
发布于 2021-03-31 16:16
可以发个题目的链接吗
点赞 回复
分享
发布于 2021-03-31 16:36
只能想到递归dfs,你是不没剪枝
点赞 回复
分享
发布于 2021-04-06 07:54
就10张牌啊。全排列10!= 3e6。判断再乘10也就3e7,直接暴力写就能过。
点赞 回复
分享
发布于 2021-04-10 23:55
最多十张牌,可以直接建图,然后从每个点开始深搜,找到最大值即可。
点赞 回复
分享
发布于 2021-04-12 14:09
试试这样吧 private static void calculate(String[] number, String[] corlor, boolean[] v, int size,String lastColor,String lastNumber,int allNumber) {         boolean flag=true;         for(int i=0;i<size;i++ ){             if(!v[i]){                 flag = false;             }         }         if(flag){             if(allNumber>count){                 count = allNumber;             }             return;         }         for(int i=0;i<size;i++){             if(v[i]){                 continue;             }             v[i]=true;             if(number[i].equals(lastNumber)||lastNumber.equals("")){                 calculate(number,  corlor,  v,  size, corlor[i], number[i],allNumber+1);             }             if(corlor[i].equals(lastColor)||lastColor.equals("")){                 calculate(number,  corlor,  v,  size, corlor[i], number[i],allNumber+1);             }             v[i] = false;         }         if(allNumber>count){             count = allNumber;         }     }
点赞 回复
分享
发布于 2022-03-14 20:14

相关推荐

4 23 评论
分享
牛客网
牛客企业服务