Skip to main content

1423. Maximum Points You Can Obtain from Cards

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

Python

Two Direction Prefix Sum

class Solution:
def maxScore(self, cardPoints: List[int], k: int) -> int:
if k >= len(cardPoints):
return sum(cardPoints)

lefts, rights = [0], [0]

for i in range(0, k+1):
lefts.append(lefts[i]+cardPoints[i])
rights.append(rights[i]+cardPoints[len(cardPoints)-i-1])

max_score = 0
for i in range(k+1):
current = lefts[i] + rights[k-i]
max_score = max(max_score, current)

return max_score