class Solution {
public:
int maxScore(vector<int>& cardPoints, int k) {
int n = cardPoints.size();
int preSum = 0;
for(int i = 0; i < k; i ++)
preSum += cardPoints[i];
int ans = preSum;
// preSum 逐渐减少,再加上后面的值
for(int i = k - 1; i >= 0; i --){
preSum = preSum - cardPoints[i] + cardPoints[--n];
ans = max(ans, preSum);
}
return ans;
}
};