news 2026/4/15 19:55:29

(新卷,100分)- 翻牌求最大分(Java JS Python C)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(新卷,100分)- 翻牌求最大分(Java JS Python C)

(新卷,100分)- 翻牌求最大分(Java & JS & Python & C)

题目描述

给出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,-5,-6,4,7,2,-2
输出11
说明请看题目描述
题目解析

本题比较迷惑人的是

如果当前总得分小于它前三次的总得分的话,那此次不翻牌,并且总得分就等于它前三次的得分

这里的前三次应该指的是三轮前,比如当前是第10轮,则前三轮是第7轮。

JavaScript算法源码
/* JavaScript Node ACM模式 控制台输入获取 */ const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { const arr = line.split(",").map(Number); const dp = []; for (let i = 0; i < arr.length; i++) { if (i === 0) { dp[0] = Math.max(0, arr[0]); } else if (i < 3) { dp[i] = Math.max(0, dp[i - 1] + arr[i]); } else { dp[i] = Math.max(dp[i - 3], dp[i - 1] + arr[i]); } } console.log(dp.at(-1)); });
Java算法源码
import java.util.Arrays; import java.util.Scanner; public class Main { // 输入获取 public static void main(String[] args) { Scanner sc = new Scanner(System.in); Integer[] arr = Arrays.stream(sc.nextLine().split(",")).map(Integer::parseInt).toArray(Integer[]::new); System.out.println(getResult(arr)); } // 算法入口 public static int getResult(Integer[] arr) { int n = arr.length; int[] dp = new int[n]; for (int i = 0; i < n; i++) { if (i == 0) { dp[0] = Math.max(0, arr[0]); } else if (i < 3) { dp[i] = Math.max(0, dp[i - 1] + arr[i]); } else { dp[i] = Math.max(dp[i - 3], dp[i - 1] + arr[i]); } } return dp[n - 1]; } }
Python算法源码
# 输入获取 arr = list(map(int, input().split(","))) # 算法入口 def getResult(): n = len(arr) dp = [0] * n for i in range(n): if i == 0: dp[0] = max(0, arr[0]) elif i < 3: dp[i] = max(0, dp[i - 1] + arr[i]) else: dp[i] = max(dp[i - 3], dp[i - 1] + arr[i]) return dp[-1] # 算法调用 print(getResult())
C算法源码
#include <stdio.h> #define MAX(a,b) (a) > (b) ? (a) : (b) #define MAX_SIZE 20 int getResult(int nums[], int nums_size); int main() { int nums[MAX_SIZE]; int nums_size = 0; while(scanf("%d", &nums[nums_size++])) { if(getchar() != ',') break; } printf("%d\n", getResult(nums, nums_size)); return 0; } int getResult(int nums[], int nums_size) { int dp[nums_size]; for(int i=0; i<nums_size; i++) { if(i == 0) { dp[0] = MAX(0, nums[0]); } else if(i < 3) { dp[i] = MAX(0, dp[i-1] + nums[i]); } else { dp[i] = MAX(dp[i-3], dp[i-1] + nums[i]); } } return dp[nums_size-1]; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 14:23:02

【计算机毕设】基于Python的Django-html基于web漏洞挖掘技术的研究

&#x1f49f;博主&#xff1a;程序员小俊&#xff1a;CSDN作者、博客专家、全栈领域优质创作者 &#x1f49f;专注于计算机毕业设计&#xff0c;大数据、深度学习、Java、小程序、python、安卓等技术领域 &#x1f4f2;文章末尾获取源码数据库 &#x1f308;还有大家在毕设选题…

作者头像 李华
网站建设 2026/4/15 16:42:23

宏智树 AI:ChatGPT 学术版驱动,重构学术写作智能新范式

在学术研究日益精细化、查重标准日趋严格的当下&#xff0c;论文写作常常陷入文献筛选繁琐、数据处理复杂、合规性难保障的困境。宏智树 AI 依托 ChatGPT 学术版模型与 AI5.0 技术架构&#xff0c;打造了专为学术场景量身定制的智能解决方案平台&#xff0c;为高校师生、科研人…

作者头像 李华
网站建设 2026/4/15 1:08:48

智慧校园综合管理平台解决方案综合概述与最佳实践

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园综合管理平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人…

作者头像 李华
网站建设 2026/4/4 17:46:38

AI大模型:python汽车大数据分析可视化系统 机器学习 协同过滤推荐算法 二手车推荐系统 汽车推荐系统 爬虫技术

博主介绍&#xff1a;✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战8年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…

作者头像 李华
网站建设 2026/4/15 15:47:36

Thinkphp和Laravel在线小说阅读评分平台_0hxfv含章节_

目录 ThinkPHP与Laravel构建在线小说阅读评分平台的关键实现数据库设计章节阅读功能实现评分系统设计性能优化建议 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 ThinkPHP与Laravel构建在线小说阅读评分平台的关键实现 平台核心功能需求 在线小…

作者头像 李华