全部评论
感觉像并查集呀
我有一个思路 不知道行不行 一共四十种 boolean[4] [10] 0-9 第一个颜色 10-19 第二个颜色 20-29第三个颜色 30-39第四个颜色 将存在的牌 boolean[颜色][数字]=true; 然后行 列 求和就行
我试用动态规划做了一下,还行。T(n)=max1..n{T(n-1)+1},时间复杂度没分析
感觉可以用并查集来处理
n叉树遍历所有结果取最大深度可以吗?
建图求最长路
可以发个题目的链接吗
只能想到递归dfs,你是不没剪枝
就10张牌啊。全排列10!= 3e6。判断再乘10也就3e7,直接暴力写就能过。
最多十张牌,可以直接建图,然后从每个点开始深搜,找到最大值即可。
试试这样吧 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; } }
相关推荐
![](https://static.nowcoder.com/fe/file/oss/1715049343797JOCFB.png)
点赞 评论 收藏
分享