Leetcode 1538 Solution

This article provides solution to leetcode question 1538 (maximum-points-you-can-obtain-from-cards)

https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards

Solution

class Solution: def maxScore(self, cardPoints: List[int], k: int) -> int: win_size = len(cardPoints) - k
if win_size == 0: return sum(cardPoints)
win_sum = 0 win_cnt = 0
opt = sys.maxsize for i, card in enumerate(cardPoints): win_sum += card win_cnt += 1
if win_cnt > win_size: win_sum -= cardPoints[i - win_size] win_cnt -= 1
if win_cnt == win_size: opt = min(opt, win_sum)
return sum(cardPoints) - opt