🗒️1423. 可获得的最大点数
2024-11-24
| 2024-11-24
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Nov 24, 2024 04:46 AM
几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。
每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。
你的点数就是你拿到手中的所有卡牌的点数之和。
给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。

这道题的滑动窗口的范围非常有趣。我们一般做滑动窗口,都是一遍扫过去,看满足条件不。
notion image
notion image
notion image
而这一题,我们每次行动都只能从首尾开始拿元素放入窗口中。因此,我们可以发现,如果我们是原来的遍历方法,是不对的,中间的部分,我们是不能碰的。图中的红框部分就是我们能进行滑动的部分。
notion image
因此,我们是不是可以转换思路呢?将尾部进行延长,这样组成一个连续的滑动区间,就可以使用我们的滑动窗口算法了。当然,我们不是真的延长,而是通过下标的来取出对应元素。
notion image

📎 参考

  • 【题单】滑动窗口与双指针
  • Important
  • 1652. 拆炸弹2461. 长度为 K 子数组中的最大和
    Loading...
    目录