几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 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. 可获得的最大点数(滑动窗口)相关推荐

  1. 【LeetCode】剑指 Offer 59 - I. 滑动窗口的最大值

    [LeetCode]剑指 Offer 59 - I. 滑动窗口的最大值 文章目录 [LeetCode]剑指 Offer 59 - I. 滑动窗口的最大值 package offer;import ja ...

  2. LeetCode 674. 最长连续递增序列 (滑动窗口 计数法)

    LeetCode 674. 最长连续递增序列 滑动窗口 右边界不断往右移动 左边界收缩条件:当右边界的值小于等于其左边的值时(递减) 左边界收缩到右边界当前位置 class Solution {pub ...

  3. leetcode 1052. 爱生气的书店老板(滑动窗口)

    今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时候,书店老板会生气. ...

  4. LeetCode 209. 长度最小的子数组 (滑动窗口)

    LeetCode 209. 长度最小的子数组 class Solution {public int minSubArrayLen(int s, int[] nums) {int start = 0;i ...

  5. leetcode 1208. 尽可能使字符串相等(滑动窗口)

    给你两个长度相同的字符串,s 和 t. 将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值 ...

  6. 七十四、滑动窗口最值问题

    @Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组 ...

  7. 列表左右箭头滑动_我写了一套框架,把滑动窗口算法变成了默写题

    读完本文,你可以去力扣拿下如下题目: 76.最小覆盖子串 567.字符串的排列 438.找到字符串中所有字母异位词 3.无重复字符的最长子串 ----------- 鉴于前文 二分搜索框架详解 的那首 ...

  8. 滑动窗口算法_有点难度,几道和「滑动窗口」有关的算法面试题

    前言科普:什么是滑动窗口算法 滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合. 假设有数组 [a b c d e f g h ],一个大小为 3 的 **滑动窗 ...

  9. 有点难度,几道和「滑动窗口」有关的算法面试题

    前言科普:什么是滑动窗口算法 滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合. 假设有数组 [a b c d e f g h ],一个大小为 3 的 滑动窗口 ...

最新文章

  1. Leangoo新功能-卡片ID
  2. 干货整理 Unity3D资源汇总
  3. 标注反向优化 生成全体测试集空标注(无需坐标、只要送给权重evaluate即可)predicted
  4. 使用cordova serve build以及tomcat进行web 调试。
  5. linux下的系统调用函数到内核函数的追踪
  6. iTOP-iMX6开发板-设备树内核-注册驱动例程
  7. 关于叫号类的PV操作总结
  8. $(document).ready(function(){}),$().ready(function(){})和$(function(){})三个有区别么
  9. 0 公式 0 基础学习电磁兼容 — 2.IEC及其EMC标准体系简介
  10. Ruby 的 FileUtils 模块
  11. 面试:视频播放器相关优化参考
  12. 【juns项目】信用卡数据项目2-2:数据设计
  13. 中科大网上财务报销填写流程
  14. 创新5.1 7.1声卡安装调试教程
  15. 五线谱上的Linux旋律
  16. home credit default risk捷信消费金融违约风险模型复现(论文_毕业设计_作业)
  17. 网络安全-WEB中的常见编码
  18. kafka SASL认证介绍及自定义SASL PLAIN认证功能
  19. php artisan命令表,php artisan 命令列表
  20. 抖音落地页跳转微信加好友怎么实现的?

热门文章

  1. 【算法】【殊途同归】搜索算法之(深度优先 || 广度优先) (约束条件 || 限界函数)
  2. 1093 字符串A+B (20 分)
  3. WinPcap笔记(9):保存数据包到堆文件
  4. c语言 字符转int型,C语言—类型之间的转换
  5. 条件变量 sync.Cond
  6. 去除list集合中重复项的几种方法
  7. c/c++连接mysql数据库设置及乱码问题(vs2013连接mysql数据库,使用Mysql API操作数据库)...
  8. uvalive 4973 Ardenia
  9. 推荐几款热门的敏捷开发工具
  10. MD5和SHA1加密