可获得的最大点数
目录
可获得的最大点数
题目:
https://leetcode-cn.com/problems/maximum-points-you-can-obtain-from-cards/
思路:
滑动窗口题目,限定窗口大小然后滑动即可
代码:
class Solution:
def maxScore(self, cardPoints: List[int], k: int) -> int:
= len(cardPoints)
n # 滑动窗口大小为 n-k
= n - k
windowSize # 选前 n-k 个作为初始值
= sum(cardPoints[:windowSize])
s = s
minSum for i in range(windowSize, n):
# 滑动窗口每向右移动一格,增加从右侧进入窗口的元素值,并减少从左侧离开窗口的元素值
+= cardPoints[i] - cardPoints[i - windowSize]
s = min(minSum, s)
minSum return sum(cardPoints) - minSum