LeetCode每日一题,1423. Maximum Points You Can Obtain From Cards
先看题目描述
大意就是给定一个数组 cardPoints 代表牌的点数,我们每次只能取出第一张牌或最后一张牌,一共能取 k 次,问可获得的最大点数是多少
算法和思路
滑动窗口
由于每次只能取起始或末尾的牌,一共能取 k 次,因此取出的牌一定是连续的 k 张牌,且必然包含第一张牌或最后一张牌。于是只需要先构建一个以第一张牌为起点的长度为 k 的滑动窗口,然后将其逆向滑动 k 次,滑动过程中维护可获得点数的最大值,最后将最大点数返回即可
算法源码
滑动窗口
1 | class Solution { |