This practice workspace is built for desktop. Open it on a larger screen to start solving.
Maximum Points You Can Obtain From Cards
You are given an integer array cardPoints representing a row of cards, and an integer k. On each step you must take exactly one card from either the start or the end of the row. After taking exactly k cards, return the maximum total score you can achieve.
Equivalent formulation: choose any k cards taken only from the two ends. The cards you leave behind form a contiguous window of length n - k in the middle. Minimize the sum of that middle window — what remains is the maximum.
Examples
Constraints
- 1 <= cardPoints.length <= 10^5
- 1 <= cardPoints[i] <= 10^4
- 1 <= k <= cardPoints.length
Preview Mode
This is a read-only preview of DSAMind's AI coaching. Sign up to get custom feedback on your own solution.
Your approach
- Pattern:Sliding Window
- Time:O(N)
- Space:O(1)
Complete approach — pattern and complexity both named.
Coach
What you got right
You correctly matched the sorted input requirement and implemented a linear-time scan using two pointers.
Where it diverged
No divergence detected. The code correctly aligns with the stated approach.
Next attempt: focus on
Try solving related sliding window problems to build familiarity with two-pointer variants.
Signals
No signals fired — clean run, you stayed in flow.