Leetcode 1538 Solution
This article provides solution to leetcode question 1538 (maximum-points-you-can-obtain-from-cards)
Access this page by simply typing in "lcs 1538" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
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