leetcode 1423. 可获得的最大点数(滑动窗口)
几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。
每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。
你的点数就是你拿到手中的所有卡牌的点数之和。
给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。
示例 1:
输入:cardPoints = [1,2,3,4,5,6,1], k = 3
输出:12
解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最大化你的可获得点数。最优策略是拿右边的三张牌,最终点数为 1 + 6 + 5 = 12 。
代码
class Solution {public int maxScore(int[] cardPoints, int k) {//将题目转化为求累加和最小的滑动窗口int l=0,r=0,n=cardPoints.length,tar=n-k,cur=0;for(;r<tar;r++)//初始化第一个滑动窗口cur+=cardPoints[r];int res=cur;while (r<n){cur-=cardPoints[l++];cur+=cardPoints[r++]; res= Math.min(res,cur);}int sum=Arrays.stream(cardPoints).sum();return sum-res;}
}
leetcode 1423. 可获得的最大点数(滑动窗口)相关推荐
- 【LeetCode】剑指 Offer 59 - I. 滑动窗口的最大值
[LeetCode]剑指 Offer 59 - I. 滑动窗口的最大值 文章目录 [LeetCode]剑指 Offer 59 - I. 滑动窗口的最大值 package offer;import ja ...
- LeetCode 674. 最长连续递增序列 (滑动窗口 计数法)
LeetCode 674. 最长连续递增序列 滑动窗口 右边界不断往右移动 左边界收缩条件:当右边界的值小于等于其左边的值时(递减) 左边界收缩到右边界当前位置 class Solution {pub ...
- leetcode 1052. 爱生气的书店老板(滑动窗口)
今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时候,书店老板会生气. ...
- LeetCode 209. 长度最小的子数组 (滑动窗口)
LeetCode 209. 长度最小的子数组 class Solution {public int minSubArrayLen(int s, int[] nums) {int start = 0;i ...
- leetcode 1208. 尽可能使字符串相等(滑动窗口)
给你两个长度相同的字符串,s 和 t. 将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值 ...
- 七十四、滑动窗口最值问题
@Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组 ...
- 列表左右箭头滑动_我写了一套框架,把滑动窗口算法变成了默写题
读完本文,你可以去力扣拿下如下题目: 76.最小覆盖子串 567.字符串的排列 438.找到字符串中所有字母异位词 3.无重复字符的最长子串 ----------- 鉴于前文 二分搜索框架详解 的那首 ...
- 滑动窗口算法_有点难度,几道和「滑动窗口」有关的算法面试题
前言科普:什么是滑动窗口算法 滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合. 假设有数组 [a b c d e f g h ],一个大小为 3 的 **滑动窗 ...
- 有点难度,几道和「滑动窗口」有关的算法面试题
前言科普:什么是滑动窗口算法 滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合. 假设有数组 [a b c d e f g h ],一个大小为 3 的 滑动窗口 ...
最新文章
- Leangoo新功能-卡片ID
- 干货整理 Unity3D资源汇总
- 标注反向优化 生成全体测试集空标注(无需坐标、只要送给权重evaluate即可)predicted
- 使用cordova serve build以及tomcat进行web 调试。
- linux下的系统调用函数到内核函数的追踪
- iTOP-iMX6开发板-设备树内核-注册驱动例程
- 关于叫号类的PV操作总结
- $(document).ready(function(){}),$().ready(function(){})和$(function(){})三个有区别么
- 0 公式 0 基础学习电磁兼容 — 2.IEC及其EMC标准体系简介
- Ruby 的 FileUtils 模块
- 面试:视频播放器相关优化参考
- 【juns项目】信用卡数据项目2-2:数据设计
- 中科大网上财务报销填写流程
- 创新5.1 7.1声卡安装调试教程
- 五线谱上的Linux旋律
- home credit default risk捷信消费金融违约风险模型复现(论文_毕业设计_作业)
- 网络安全-WEB中的常见编码
- kafka SASL认证介绍及自定义SASL PLAIN认证功能
- php artisan命令表,php artisan 命令列表
- 抖音落地页跳转微信加好友怎么实现的?
热门文章
- 【算法】【殊途同归】搜索算法之(深度优先 || 广度优先) (约束条件 || 限界函数)
- 1093 字符串A+B (20 分)
- WinPcap笔记(9):保存数据包到堆文件
- c语言 字符转int型,C语言—类型之间的转换
- 条件变量 sync.Cond
- 去除list集合中重复项的几种方法
- c/c++连接mysql数据库设置及乱码问题(vs2013连接mysql数据库,使用Mysql API操作数据库)...
- uvalive 4973 Ardenia
- 推荐几款热门的敏捷开发工具
- MD5和SHA1加密