获取题库不需要订阅专栏,可直接私信我进入优快云领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
给出n个牌数,在-100到100之间,求最大得分。
规则如下:连续翻牌,如果选当前牌,则总得分等于上一次翻牌总得分加上当前牌的数字,
如果当前总得分小于它前三次的总得分的话,那此次不翻牌,并且总得分就等于它前三次的得分。
1到3次翻牌数如果小于0的话就取0。
例子:1,-5,-6,4,7,2,-2
(1)1大于零 翻牌
(2)-5 加上1 小于0 不翻 结果为0
(3)-6 加上0 小于0 不翻 结果为0
(4)4 加上0 大于0(1)翻牌 结果为4
(5)7 加上4 大于0(2) 翻牌 结果为11
(6)2 加上11 大于0(3) 翻牌 结果为13
(7)-2 加上14 大于4(4)翻牌 结果为11
输入描述
无
输出描述
无
题目解析
这个问题可以视为一个动态规划问题,我们需要维护一个变量来记录当前的最大得分,以及一个数组或列表来存储最近三次的总得分。每当我们面对一个新的牌时,我们需要根据规则来决定是否翻牌,并更新得分。
java算法源码
这是一篇关于华为在线开发者(OD)机试中的一道题目,题目要求根据特定规则求出翻牌的最大得分。文章介绍了问题的动态规划解决方案,并提供了Java、Python和JavaScript的算法源码实现。
订阅专栏 解锁全文
1837

被折叠的 条评论
为什么被折叠?



