思路:滑动窗口
优化:post和pre两个变量记录,空间优化到O(1)
class Solution {
public:
int maxScore(vector<int>& cardPoints, int k) {
int n = cardPoints.size();
int post = 0, pre = 0;
for (int i = n - 1; i >= n - k; --i) {
post += cardPoints[i];
}
int ans = post;
for (int i = 0; i < k; ++i) {
//0->n-k 1->n-k+1
post -= cardPoints[i + n - k];
pre += cardPoints[i];
ans = max(ans, post + pre);
}
return ans;
}
};