Skip to content

Commit 233a3ab

Browse files
authored
Create 1423-maximum-points-you-can-obtain-from-cards.js
1 parent e650410 commit 233a3ab

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Greedy | Sliding Window | PrefixSum
3+
* Time O(n) | Space O(1)
4+
* https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/
5+
* @param {number[]} cardPoints
6+
* @param {number} k
7+
* @return {number}
8+
*/
9+
var maxScore = function(cardPoints, k) {
10+
11+
const total = cardPoints.reduce((acc, curr) => acc+curr, 0);
12+
let currTotal = cardPoints.slice(0, cardPoints.length - k).reduce((acc, curr) => acc+curr, 0);
13+
let max = total - currTotal;
14+
15+
let left = 0;
16+
let right = cardPoints.length - k - 1; // -1 because the array is 0 indexed.
17+
18+
while(right < cardPoints.length) {
19+
currTotal -= cardPoints[left];
20+
left++;
21+
right++;
22+
if(right < cardPoints.length) {
23+
currTotal += cardPoints[right];
24+
max = Math.max(max, total - currTotal);
25+
}
26+
}
27+
28+
return max;
29+
};

0 commit comments

Comments
 (0)