当前位置 博文首页 > 数据结构和算法:LeetCode 1423. 可获得的最大点数

    数据结构和算法:LeetCode 1423. 可获得的最大点数

    作者:[db:作者] 时间:2021-07-29 12:42

    截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
    下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
    提取码:6666

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    视频链接

    最后再来看下代码

    public int maxScore(int[] cardPoints, int k) {
        int maxWindow = 0, length = cardPoints.length;
        //先统计前k个元素的和,也是窗口内元素的和
        for (int i = 0; i < k; i++)
            maxWindow += cardPoints[i];
        //然后窗口移动,更新当前窗口的值
        int curWindow = maxWindow;
        for (int i = length - 1; i >= length - k; i--) {
            //窗口移动的时候一个元素会出窗口,一个元素会进入窗口。
            //cardPoints[k - (length - i)]是移除窗口的元素
            curWindow -= cardPoints[k - (length - i)];
            //cardPoints[i]是进入窗口的元素
            curWindow += cardPoints[i];
            //记录窗口的最大值
            maxWindow = Math.max(maxWindow, curWindow);
        }
        return maxWindow;
    }
    
    cs