1423. Maximum Points You Can Obtain from Cards - cocoder39/coco39_LC GitHub Wiki

1423. Maximum Points You Can Obtain from Cards

class Solution:
    def maxScore(self, cardPoints: List[int], k: int) -> int:
        n = len(cardPoints)
        total = 0
        window_sum = 0
        min_window_sum = float("inf")
        for i in range(n):
            total += cardPoints[i]
            window_sum += cardPoints[i]
            if i >= n-k:
                window_sum -= cardPoints[i-n+k]
            if i >= n-k-1:
                min_window_sum = min(min_window_sum, window_sum)
        return total - min_window_sum