哈尔滨网站建设排行,网站开发可选的方案有,企业黄页哪个网站好,wordpress博客优化插件2023华为OD统一考试#xff08;AB卷#xff09;题库清单-带答案#xff08;持续更新#xff09;or2023年华为OD真题机考题库大全-带答案#xff08;持续更新#xff09; 玩牌高手 给定一个长度为n的整型数组#xff0c;表示一个选手在n轮内可选择的牌面分数。选手基于规…2023华为OD统一考试AB卷题库清单-带答案持续更新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);ListInteger cards Arrays.stream(sc.nextLine().split(,)).map(Integer::parseInt).collect(Collectors.toList());int endScore maxScore(cards);System.out.println(endScore);}public static int maxScore(ListInteger 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;}
}