华为机试:连续出牌数量
【编程题目 |200分】连续出牌数量【2022 Q1,Q2考试题】
题目描述
- 手里给一副手牌,数字从0-9,有r(红色),,g(绿色),b(蓝色),y(黄色)四种颜色,出牌规则为每次打出的牌必须跟上一张的数字或者颜色相同,否则不能抽选。
- 选手应该怎么选才能使得抽选的次数最大,并且输出这个最大次数。
输入描述
- 第一行 牌的数值n (1<=n<=9)
- 第二行 牌的颜色(r,g,b,y四种颜色表示)
输出描述
- 输出最大出牌数量
示例
输入
1 4 3 4 5
r y b b r
输出
3
说明
如果打(1, r)-> (5, r),那么能打两张。
如果打(4,y) -> (4, b) -> (3, b),那么能打三张。
思路分析
这道题可以考虑DFS
参考代码
import java.util.Scanner;public class lianXuChuPaiNumDfs {public static void main(String[] args) {Scanner in = new Scanner(System.in);String[] str1 = in.nextLine().split(" ");String[] str2 = in.nextLine().split(" ");int n = str1.length;int[] used = new int[n];int ans = 0;for (int i = 0; i < n; i++) {ans = Math.max(ans, dfs(str1, str2, i, used, 1));}System.out.println(ans);}public static int dfs(String[] str1, String[] str2, int i, int[] used, int ans){if(used[i] == 1 || i >= str1.length){return ans - 1;}int res = ans;used[i] = 1;for (int j = 0; j < str1.length; j++) {if(i != j && used[j] == 0){if(str1[i].equals(str1[j]) || str2[i].equals(str2[j])){int t = dfs(str1, str2, j, used, ans + 1);res = Math.max(res, t);}}}used[i] = 0;return res;}
}
欢迎在评论区指正以及留下自己的更简洁的方法。
华为机试:连续出牌数量相关推荐
- 【华为OD机试真题 python】连续出牌数量【2022 Q4 | 200分】
前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...
- 【华为OD机试真题 JAVA】连续出牌数量
JS版:[华为OD机试真题 JS]连续出牌数量 标题:连续出牌数量 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 有这么一款单人卡牌游戏,牌面由颜色和数字组成,颜色为红.黄.蓝 ...
- 华为机试【连续出牌数量】
标题:连续出牌数量 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限 [连续出牌数量]有这么一款单人卡牌游戏,牌面由颜色和数字组成,颜色为红.黄.蓝.绿中的一种,数字为0-9中的 ...
- 【华为OD机试真题 JS】连续出牌数量
标题:连续出牌数量 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 有这么一款单人卡牌游戏,牌面由颜色和数字组成,颜色为红.黄.蓝.绿中的一种,数字为0-9中的一个.游戏开始时玩 ...
- 【华为OD机试真题 Python】连续出牌数量
前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于OD机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steven ...
- 【华为OD统一考试B卷 | 200分】 连续出牌数量(C++ Java JavaScript )
华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷). 你收到的链接上面会标注A卷还是 ...
- 华为od统一考试B卷【连续出牌数量】C++ 实现
所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 手里给一副手牌,数字从0-9,有r(红色),,g ...
- 华为od统一考试B卷【连续出牌数量】Java 实现
所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 手里给一副手牌,数字从0-9,有r(红色),,g( ...
- 华为od统一考试B卷【连续出牌数量】JavaScript 实现
所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 手里给一副手牌,数字从0-9,有r(红色),,g( ...
最新文章
- Linux 设置windows可见的文件夹共享,创建只拥有读权限的共享用户,samba工具安装,“smbpasswd: command not found“问题解决
- boost::mp11::mp_third相关用法的测试程序
- CMOS图像传感器——工作原理
- python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器
- Strtus2标签s:url
- Python对zip、tgz、rar压缩包的解压与读取
- matlab二重定积分_matlab求二重积分
- 计算机分子模拟聚乙烯,聚乙烯结晶及拉伸过程的分子动力学模拟
- 优秀的WBS的分解标准
- 关键词词云怎么做_7个好用的在线词云生成工具
- 测试固态硬盘有没有坏道的软件,固态硬盘有坏道怎么办(ssd坏块检测工具)
- html5 橡皮擦效果,javascript – HTML5 Canvas:globalCompositeOperation(橡皮擦)
- Pytorch实现有监督对比学习损失函数
- 全球免费公共 DNS 解析服务器 IP 地址列表推荐 (解决无法上网/加速/防劫持)
- 淘宝全自动下单——解放双手
- android 全屏倒计时,全屏计时器app
- 【算法❃思维与技巧】图解牛顿迭代法(力扣题实战)
- 用图灵机器人2.0实现聊天机器人
- 【数据库】python连接数据库(保姆式服务,一口一口喂啊歪)
- 【黑客故事】程序员作家王小波