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

2023-12-03 LeetCode每日一题(可获得的最大点数)

2023-12-03每日一题

一、题目编号

1423. 可获得的最大点数

二、题目链接

点击跳转到题目位置

三、题目描述

几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。

每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。

你的点数就是你拿到手中的所有卡牌的点数之和。

给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。

示例 1:
在这里插入图片描述

示例 2:
在这里插入图片描述

示例 3:
在这里插入图片描述

示例 4:
在这里插入图片描述

示例 5:
在这里插入图片描述
提示:

  • 1 <= cardPoints.length <= 105
  • 1 <= cardPoints[i] <= 104
  • 1 <= k <= cardPoints.length

四、解题代码

class Solution {
public:int maxScore(vector<int>& cardPoints, int k) {int sum = 0;int n = cardPoints.size();int dp[n+5];memset(dp, 0, sizeof(dp));for(int i = 1; i <= n; ++i){dp[i] = dp[i-1] + cardPoints[i-1]; sum += cardPoints[i-1];}int window_size = n - k;int res = 0;for(int i = window_size; i <= n; ++i){res = max(res, sum - (dp[i] - dp[i - window_size]));}return res;}
};

五、解题思路

(1) 计算出前缀和。

(2) 不管前面和后面取的什么数字,只需要知道取出的数字和为总和减去中间的数字和即可。

(3) 滑动窗口解决该问题。

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

相关文章:

  • 【唐山海德教育】安全员b证的考试科目
  • 吉他初学者学习网站搭建系列(4)——如何查询和弦图
  • 九章量子计算机:探索量子世界的革命性工具
  • 在 Linux 上修改 Oracle 控制文件、日志文件和数据文件的目录的脚本
  • JavaScript 延迟加载的艺术:按需加载的最佳实践
  • HTML之实体和标签
  • 【小布_ORACLE笔记】Part11-1--RMAN Backups
  • 卷积神经网络-3D医疗影像识别
  • C++基础 -33- 单目运算符重载
  • [传智杯 #3 初赛] 课程报名
  • 华为OD机试 - 悄悄话(Java JS Python C)
  • LeetCode - 965. 单值二叉树(C语言,二叉树,配图)
  • 每日一题(LeetCode)----哈希表--三数之和
  • DL中的GPU使用问题
  • Linux命令——watch
  • 力扣题:字符的统计-12.2
  • Python----Pandas
  • 【UE】UEC++获取屏幕颜色GetPixelFromCursorPosition()
  • 数学建模-基于BL回归模型和决策树模型对早产危险因素的探究和预测
  • 接口测试 —— 接口测试的意义
  • 一些常见的爬虫库
  • 2023.12.2 做一个后台管理网页(左侧边栏实现手风琴和隐藏/出现效果)
  • 【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》
  • 详细学习Pyqt5的20种输入控件(Input Widgets)
  • 【JavaEE初阶】Thread 类及常见方法、线程的状态
  • 0 NLP: 数据获取与EDA
  • 159.库存管理(TOPk问题!)
  • 【开源】基于Vue+SpringBoot的康复中心管理系统
  • 设计模式总览
  • 数据链路层之VLAN基本概念和基本原理