刷题前唠嗑

【LeetCode】每日一题 2023_12_3 可获得的最大点数(前缀和/滑动窗口/贪心)-LMLPHP
LeetCode?启动!!!

题目:可获得的最大点数

题目链接:1423. 可获得的最大点数

题目描述

【LeetCode】每日一题 2023_12_3 可获得的最大点数(前缀和/滑动窗口/贪心)-LMLPHP

代码与解题思路

func maxScore(cardPoints []int, k int) int {
    front := 0
    for i := 0; i < k; i++ {
        front += cardPoints[i]
    }
    ans := front
    for i := 1; i <= k; i++ {
        front += cardPoints[len(cardPoints)-i] - cardPoints[k-i]
        ans = max(ans, front)
    }
    return ans
}

我这个方法算是有那么一点前缀+贪心的思想吧,主要流程是这样的:

  1. 先把前 k 个数都加到一起,用 front 存着
  2. 然后倒着遍历后 k 个数,具体来说就是:去掉一个前 k 个的数,增加一个后 k 个的数,然后求最大值,这样就能将全部的情况都走了一遍,并把它们能得到的最大值存了起来,如果凭空想象不出来可以对着代码和样例走一遍

结语

我看到还有滑动窗口的解法,原本应该去看看的,但是最近有些累,没力气了,躺倒

12-03 14:18