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

Leetcode1423.可获得的最大点数

文章目录

  • 题目
  • 原题链接
  • 思路(逆向思维)

题目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

原题链接

Leetcode1423.可获得的最大点数

思路(逆向思维)

由题目可知,从两侧选k张,总数为n张,即从中间选n - k张
nums总和固定,要选k张最大的和,即从中间选n - k张最小的和
综上,原题 <---->从 cardPoints中找长度为 n - k的连续段,使其总和最小。

  1. sum代表nums的和,用_min代表窗口中总和最小的值;
  2. 刚开始,确定第一个窗口里面的值记为cur同时更新和最小_min
  3. 窗口同时向后走,进一个元素、出一个元素,并更新_min
  4. 最后返回sum - _min

代码

class Solution 
{
public:int maxScore(vector<int>& cardPoints, int k) {int n = cardPoints.size();int len = n - k;//逆向思维转换窗口大小;int sum = 0, cur = 0;//cur为当前窗口的总和for(auto e : cardPoints) sum += e;//sum为cardPoints的总和for(int i = 0; i < len; i++) cur += cardPoints[i];//获取第一个窗口的值int _min = cur;//窗口和最小的值for(int i = len; i < n; i++){cur += cardPoints[i] - cardPoints[i - len];_min = min(_min, cur);}return sum - _min;}
};
http://www.lryc.cn/news/300662.html

相关文章:

  • 深度学习之梯度下降算法
  • 代码随想录第32天|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
  • 线性代数的本质 2 线性组合、张成的空间、基
  • - 工程实践 - 《QPS百万级的有状态服务实践》01 - 存储选型实践
  • SECS/GEM的HSMS通讯?金南瓜方案
  • wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)
  • 【VTKExamples::PolyData】第二十八期 LinearExtrusion
  • Linux操作系统基础(五):Linux的目录结构
  • SolidWorks如何在一个零件的基础上绘制另一个零件
  • gin(结)
  • JavaScript 设计模式之桥接模式
  • B3651 [语言月赛202208] 数组调整
  • MessageQueue --- RabbitMQ
  • WordPress作者页面链接的用户名自动变成16位字符串串插件Smart User Slug Hider
  • Nvidia 携手 RTX 推出的本地运行 AI 聊天机器人
  • 年假作业day2
  • HTML-多媒体嵌入-MDN文档学习笔记
  • openJudge | 距离排序 C语言
  • 【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)
  • [leetcode]买卖股票的最佳时机 (动态规划)
  • 隐函数的求导【高数笔记】
  • SG3225EEN晶体振荡器规格书
  • ESP8266 常用AT指令
  • esbuild 构建工具为什么很快?
  • 解决vscode报错,在赋值前使用了变量“XXX“
  • python自动定时任务schedule库的使用方法
  • 用机器学习方法重构期货商品板块
  • 51单片机项目(29)——基于51单片机的避障跟随小车
  • 人工智能学习与实训笔记(六):百度飞桨套件使用方法
  • Linux第一个小程序-进度条