- 難度分: 1574
- 這題同樣是定長度的 sliding window,但要透過一點轉換,變成求
window = n - k
的最小和
class Solution {
public:
int maxScore(vector<int>& cardPoints, int k) {
int n = cardPoints.size();
int m = n-k;
int sum = 0;
for (int i = 0; i < m; i++) {
sum += cardPoints[i];
}
int total = sum;
int min_window_sum = sum;
for (int i = m; i < n; i++) {
sum += (cardPoints[i] - cardPoints[i-m]);
total += cardPoints[i];
min_window_sum = min(min_window_sum, sum);
}
return total - min_window_sum;
}
};