当前位置: 首页 > news >正文

华为OD真题---玩牌高手--带答案

2023华为OD统一考试(A+B卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新)

玩牌高手

给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。选择规则如下:

1、在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。

2、选手也可不选择本轮牌面直接跳到下一轮,此时将当前总分数还原为3轮前的总分数,若当前轮次小于等于3(即在第1、2、3轮选择跳过轮次),则总分数置为0。

3、选手的初始总分数为0,且必须依次参加每一轮。

收起

输入描述:

第一行为一个小写逗号分割的字符串,表示n轮的牌面分数,1<= n <=20。

分数值为整数,-100 <= 分数值 <= 100。

不考虑格式问题。

输出描述:

所有轮结束后选手获得的最高总分数。

示例1

输入

1,-5,-6,4,3,6,-2

输出

11

说明

总共有7轮牌面。

第一轮选择该轮牌面,总分数为1。

第二轮不选择该轮牌面,总分数还原为0。

第三轮不选择该轮牌面,总分数还原为0。

第四轮选择该轮牌面,总分数为4。

第五轮选择该轮牌面,总分数为7。

第六轮选择该轮牌面,总分数为13。

第七轮如果不选择该轮牌面,则总分数还原到3轮1前分数,即第四轮的总分数4,如果选择该轮牌面,总分数为11,所以选择该轮牌面。

因此,最终的最高总分为11。

public class PlayCards {public static void main(String[] args) {Scanner sc = new Scanner(System.in);List<Integer> cards = Arrays.stream(sc.nextLine().split(",")).map(Integer::parseInt).collect(Collectors.toList());int endScore = maxScore(cards);System.out.println(endScore);}public static int maxScore(List<Integer> cards){//若当前轮次小于等于3(即在第1、2、3轮选择跳过轮次),则总分数置为0。int max = 0;for (int i = 0; i < cards.size(); i++){//大于0的累计值if (cards.get(i) >= 0){max += cards.get(i);} else if (i > 2) {//当前值跟前三轮值比较,看是返回值,还是累计当前值max = Math.max(max + cards.get(i),cards.get(i-3));}else {max = Math.max(max + cards.get(i),0);}}return max;}
}

http://www.lryc.cn/news/119756.html

相关文章:

  • 案例14 Spring MVC文件上传案例
  • 如何用Python实现多线程
  • Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案
  • 对话即数据分析,网易数帆ChatBI做到了
  • 简单记录牛客top101算法题(初级题C语言实现)BM17 二分查找 BM21 旋转数组的最小数字 BM23 二叉树的前序遍历
  • 日常BUG——Java使用Bigdecimal类型报错
  • 为Windows Terminal设置背景图片
  • 【Spring】-Spring中Bean对象的存取
  • 机器人CPP编程基础-03变量类型Variables Types
  • 或许有用的开源项目平台——物联网、区块链、商城、CMS、客服系统、低代码、可视化、ERP等
  • 火车头采集伪原创插件【php源码】
  • 【数学】CF1514 C
  • SqlServer基础之(触发器)
  • 数据结构刷题训练:队列实现栈
  • (统计学习方法|李航)第四章 朴素贝叶斯算法——贝叶斯估计
  • 企业直播MR虚拟直播(MR混合现实直播技术)视频介绍
  • React Fiber: 从 Reconciliation 到 Concurrent Mode
  • 【PostgreSQL内核学习(十一)—— OpenGauss源码学习(CopyTo)】
  • 计算机网络 网络层 IPv4地址
  • 【程序员社交】多和高层次人群交流
  • 机器学习笔记 - 基于C++的​​深度学习 三、实现成本函数
  • lazada、shopee店铺如何利用测评提高权重和排名?
  • 安全第二次
  • 125、SpringBoot可以同时处理多少请求?
  • SSE技术和WebSocket技术实现即时通讯
  • 什么是敏捷开发?
  • tcp发送整型,结构体等数据的方法
  • 【Unity每日一记】让一个物体按余弦曲线移动—(三角函数的简单运用)
  • python爬虫实战——数据可视化
  • 案例13 Spring MVC参数传递案例