当前位置: 首页 > news >正文

Leetcode 3026. Maximum Good Subarray Sum

  • Leetcode 3026. Maximum Good Subarray Sum
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接: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。

http://www.lryc.cn/news/294585.html

相关文章:

  • elementUI之el-form-item的嵌套的场景
  • Linux项目自动化构建工具之make/Makefile演示gcc编译
  • ChatGPT 官方中文页面上线
  • 算法学习——华为机考题库10(HJ64 - HJ69)
  • [office] Excel中去除表格小数点后面数字的操作方法 #知识分享#学习方法
  • 2023年度报告
  • 基于springboot智慧养老平台源码和论文
  • IDEA插件ChatGPT - Easycode安装使用
  • 设置 相关
  • argcomplete,一个超酷 Python 库!
  • <设计模式>单例模式懒汉和饿汉
  • 二分查找------蓝桥杯
  • 今日arXiv最热NLP大模型论文:微软提出SliceGPT,删除25%模型参数,性能几乎无损
  • ChatGPT实战100例 - (13) 写一个属于自己的 ChatGPT 新版 WebUI
  • 【计算机学院寒假社会实践】——服务走进社区,共绘幸福蓝图
  • [python] 过年燃放烟花
  • 数据结构与算法:图论(邻接表板子+BFS宽搜、DFS深搜+拓扑排序板子+最小生成树MST的Prim算法、Kruskal算法、Dijkstra算法)
  • Python之PySpark简单应用
  • 降维(Dimensionality Reduction)
  • web应用(网页)怎样调用浏览器插件(如metamask小狐狸钱包)
  • 2024美赛数学建模C题完整论文教学(含十几个处理后数据表格及python代码)
  • Matplotlib绘制炫酷柱状图的艺术与技巧【第60篇—python:Matplotlib绘制柱状图】
  • window 挂载linux 网盘
  • windows10忘记密码的解决方案
  • 进程和线程的区别详解
  • (基于xml配置Aop)学习Spring的第十五天
  • Centos7环境安装PHP8
  • No matching client found for package name ‘com.unity3d.player‘
  • JavaWeb之HTML-CSS --黑马笔记
  • logback日志配置