type
status
date
slug
summary
tags
category
icon
password
创建时间
Nov 24, 2024 04:46 AM
几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组
cardPoints
给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿
k
张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。
给你一个整数数组
cardPoints
和整数 k
,请你返回可以获得的最大点数。这道题的滑动窗口的范围非常有趣。我们一般做滑动窗口,都是一遍扫过去,看满足条件不。



而这一题,我们每次行动都只能从首尾开始拿元素放入窗口中。因此,我们可以发现,如果我们是原来的遍历方法,是不对的,中间的部分,我们是不能碰的。图中的红框部分就是我们能进行滑动的部分。

因此,我们是不是可以转换思路呢?将尾部进行延长,这样组成一个连续的滑动区间,就可以使用我们的滑动窗口算法了。当然,我们不是真的延长,而是通过下标的来取出对应元素。

📎 参考
- 无