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

灵神题单滑动窗口可获得的最大点数(洛谷1423)思考题题解

原题在此处

解题思路

这道题的原题大致意思可以看上面链接,有一种做法是逆向思维,也就是,只能从首部或者尾部取一个数字,那么剩下的部分肯定是连续的,假设数组长度为n,要取的数字的个数为k,也就是求数组中
n-k个连续子数组的最小值,用总和减去最小值就可以得到最终的答案

原题逆向思维解法代码

class Solution {
public:int maxScore(vector<int>& cardPoints, int k) {int s=0,ans=INT_MAX;int nn=cardPoints.size();int n=nn-k;if(n==0){return accumulate(cardPoints.begin(),cardPoints.end(),0);}for(int i=0;i<cardPoints.size();i++){s+=cardPoints[i];if(i-n+1<0)continue;ans=min(ans,s);s-=cardPoints[i-n+1];}return accumulate(cardPoints.begin(),cardPoints.end(),0)-ans;}
};

原题灵神解法代码(两种)

(https://leetcode.cn/problems/maximum-points-you-can-obtain-from-cards/solutions/2551432/liang-chong-fang-fa-ni-xiang-si-wei-zhen-e3gb/)

思考题解法

同理,思考题我们也可以这样做,就是求这个数组,这整个数组的最小字段和,后来了解,这种做法其实有一个专有的名字叫做Kadane算法

class Solution {
public:int maxScore(vector<int>& cardPoints, int k) {int cur=0,mn=0;int n=cardPoints.size();int s=accumulate(cardPoints.begin(),cardPoints.end(),0);for(int i=0;i<n;i++){cur=min(cur+cardPoints[i],cardPoints[i]);//意思是,是这个以第i+1个元素为结尾的子数组小,还是让这个第i-1个元素另起炉灶,成为新的子数组的开头mn=min(cur,mn);//从全局的角度,一直选出最小的子数组}return s-mn;}
};

如果将min换成max,可以求最大子数组,同样可解

这道题原题除了灵神的两种解法之外,还有另外一种解法,因为只能拿首部和尾部的牌,所以我们其实可以把这个数组给他变成一个环

class Solution {
public:int maxScore(vector<int>& cardPoints, int k) {int s=0;int cnt=0;int ans=0;for(int i=cardPoints.size()-k;i<cardPoints.size()+k;i++){s+=cardPoints[i%cardPoints.size()];cnt++;if(cnt<k)continue;ans=max(ans,s);s-=cardPoints[(i-k+1)%cardPoints.size()];cnt--;        }return ans;}
};
http://www.jsqmd.com/news/437294/

相关文章:

  • 避坑指南:STM32 IAP升级中FreeRTOS任务栈溢出的5种排查方法(基于Keil5)
  • 【UI自动化测试】11_Appium高级手势API _TouchAction
  • 【UI自动化测试】12_Appium手机操作 _手机操作API
  • 更新驱动程序不限速!这款神器集扫描、更新、备份、还原于一身!
  • 免费vs付费降AI率工具对比:毕业论文该选哪个?
  • 使用ffmpeg+python实现自动给视频添加移动水印
  • 手动修改vs工具降AI率:毕业论文用哪种方式更好?
  • 模拟京东商品评论的Python API实现,返回符合风格的JSON数据
  • xlua - c#中遍历LuaTable
  • 2026制药行业钛棒过滤器口碑推荐指南 - 优质品牌商家
  • 2026 年国内 AI Coding Plan 怎么选?5 大平台横评帮你省钱
  • Vide Coding 经验总结,核心五点
  • Spring Boot 调用外部接口的 3 种方式,还有谁不会?!
  • 车智赢APP登录协议逆向分析(核心算法篇)
  • OceanBase 审计功能测试报告
  • 3-4午夜盘思
  • 论玩弄人性还得是黑客:揭秘3次护网红队社会工程学实战,看清社会工程学的 “恐怖” 价值
  • 接口测试基础:Postman的使用
  • 盘点护网行动的亲身经历:从红蓝对抗的实战,拆解护网行动中两大阵营的技术差异
  • SOL:虚拟货币新星,高性能区块链的崛起
  • 摄像头基础
  • 保姆级网络安全知识梳理:从概念到实践,核心要点全收录,一篇就够了!
  • 接口测试常用工具及测试方法(基础篇)
  • 2026化工行业高含盐废水处理设备公司推荐:废水处理设施、废水处理工程、废水处理系统、废水处理装置选择指南 - 优质品牌商家
  • 掌握资源感知优化,让你的智能体告别算力浪费成本超支,实现效率与成本的完美平衡!立即收藏,助你打造生产级智能体!
  • 网络安全(Cybersecurity)基础知识详解:从定义到实践,超全整理建议收藏
  • 2026年供水行业耐用配套过滤器厂家推荐榜:过滤器哪家好、浙江过滤器公司、浙江过滤器厂家、海宁过滤器公司选择指南 - 优质品牌商家
  • 保姆级网络安全科普:从定义到重要性,一篇看懂为何网络安全关乎你我!
  • 金融AI爆了!揭秘Agent Skills如何让智能体变身业务专家,速收藏!
  • Ffmpeg记录