Leetcode 3026. Maximum Good Subarray Sum

1. 解题思路

这一题的话主要就是要快速遍历所有的good subarray并快速获得每一个good subarray的和的最大值。

因此,问题就主要就成了两个问题:

  1. 如何快速找到所有的good subarray
  2. 对任意一个good subarray,如何快速求得其和

对于第二个问题,我们只需要用累积数组即可求得,对于任意一个已知首尾的subarray,我们将累积数组相减即可得到其对应的subarray的元素之和。

而对于第一个问题,我们只需要记录一下所有之前元素作为起始坐标时的位置即可。

更进一步地,由于我们只需要计算和的最大值,因此对于任意相同的元素作为开始坐标时,我们只需要保留其前部元素的最小值即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def maximumSubarraySum(self, nums: List[int], k: int) -> int:
        cumsums = list(accumulate(nums, initial=0))
        ans = -math.inf
        _min= {
   }
        
        def get_max_sub(s, tgt):
            return s - _min.get(tgt, math.inf)
        
        for i, x in enumerate(nums):
            s = cumsums[i+1]
            ans = max(ans, get_max_sub(s, x-k), get_max_sub(s, x+k))
            _min[x] = min(_min.get(x, math.inf), s-x)
        return ans if ans != -math.inf else 0

提交代码评测得到:耗时1093ms,占用内存30.6MB。

相关推荐

  1. Leetcode 3026. Maximum Good Subarray Sum

    2024-02-05 14:14:01       62 阅读
  2. Leetcode 3016. Minimum Number of Pushes to Type Word II

    2024-02-05 14:14:01       59 阅读
  3. Leetcode 3021. Alice and Bob Playing Flower Game

    2024-02-05 14:14:01       61 阅读
  4. Leetcode 3036. Number of Subarrays That Match a Pattern II

    2024-02-05 14:14:01       69 阅读
  5. Leetcode 3027. Find the Number of Ways to Place People II

    2024-02-05 14:14:01       54 阅读
  6. B3626 跳跃机器人

    2024-02-05 14:14:01       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-05 14:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-05 14:14:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-05 14:14:01       82 阅读
  4. Python语言-面向对象

    2024-02-05 14:14:01       91 阅读

热门阅读

  1. 网易和腾讯面试题精选---API 设计和开发面试问答

    2024-02-05 14:14:01       47 阅读
  2. 面试经典题---76.最小覆盖子串

    2024-02-05 14:14:01       46 阅读
  3. Spring面试大全-IOC容器03

    2024-02-05 14:14:01       41 阅读
  4. scss和less的区别

    2024-02-05 14:14:01       44 阅读
  5. 机器人抓取中的混淆概念

    2024-02-05 14:14:01       47 阅读
  6. Postgresql数据库存储过程中的事务处理

    2024-02-05 14:14:01       45 阅读
  7. 编程思维与生活琐事的内在关联及其应用价值

    2024-02-05 14:14:01       55 阅读
  8. Matlab 移动最小二乘求解仿射变换

    2024-02-05 14:14:01       51 阅读
  9. Rust基础拾遗--看的不多只看一篇--基础

    2024-02-05 14:14:01       54 阅读