leetcode1423. 可获得的最大点数(中等)

leetcode1423. 可获得的最大点数(中等)_第1张图片
leetcode1423. 可获得的最大点数(中等)_第2张图片
leetcode1423. 可获得的最大点数(中等)_第3张图片
思路:滑动窗口
优化: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;
    }
};

你可能感兴趣的:(#,slide,windows&双指针,leetcode,算法,排序算法)