华为OD机试-- 翻牌求最大分

199 阅读1分钟

题目

给出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

思路

1:这个题算是比较简单的了,第一步先求出前三个数字的和,当做标杆,然后连续往后遍历判断即可。

Java 实现:2023华为od机试真题 java 实现【翻牌求最大分】

Python实现:华为od机试真题 python 实现【翻牌求最大分】

C++ 实现:华为od机试真题 C++ 实现【翻牌求最大分】

JavaScript实现:华为od机试真题 JS 实现【翻牌求最大分】

C实现:华为od机试真题 C语言 实现【翻牌求最大分】

01d76e5e5f6bc9a801216518635257.jpg@1280w_1l_2o_100sh.jpg