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

lc1031-两个非重叠子数组的最大和

题目描述

  • 给定一个数组和两个长度,找到两个符合长度的不重合的连续子数组,使其和最大

示例

输入:nums = [0,6,5,2,2,5,1,9,4], firstLen = 1, secondLen = 2
输出:20
解释:[6, 5] + [9]
输入:nums = [3,8,1,3,2,1,8,9,0], firstLen = 3, secondLen = 2
输出:29
输入:nums = [2,1,5,6,0,9,5,0,3,8], firstLen = 4, secondLen = 3
输出:31

题解

  • 思路:前缀和
    • 不妨设 子数组a 在前,子数组b 在后
    • 当 b 固定时,a 在前面范围中取最大,就得到了当前 b 对应的最大值
    • 对于每一个 b,都找到最大的 a,最后取一个 max 即可
    • 又是非常像第一题《两数之和》
func maxSumTwoNoOverlap(nums []int, firstLen int, secondLen int) int {return max(help(nums, firstLen, secondLen), help(nums, secondLen, firstLen))
}func help(nums []int, a, b int) (res int) {n := len(nums)s := make([]int, n + 1)for i := 1; i <= n; i ++ { s[i] = s[i - 1] + nums[i - 1] }for i, maxa := a + b, 0; i <= n; i ++ {maxa = max(maxa, s[i - b] - s[i - b - a])res = max(res, maxa + s[i] - s[i - b])}return
}
http://www.gsyq.cn/news/7658.html

相关文章:

  • 我对 WPF 动摇时的选择:.NET Framework 4.6.2+WPF+Islands+UWP+CompostionApi - 行人-
  • US$1198 Xhorse VVDI2 BMW Version With Basic+BMW OBD+BMW CAS4+BMW FEM/BDC
  • 什么情况下需要用到xargs
  • Office 2024安装包专业增强版超详细下载安装教程
  • 关于 pdfminer 的安装 - 指南
  • EF Core 与 MySQL:日志和调试详解
  • 使用镜像源解决github拉取代码问题 - GD
  • 类和面向对象
  • mac更新or安装homebrew失败
  • 微信小程序实现-单选-以及全选功能。 - 教程
  • Typescript中闭包的原理 - 教程
  • Hadoop本地库加载问题分析与解决方案
  • 专用通路方式
  • 2025.8 做题记录
  • 关于pytorch的读书报告
  • Emacs 折腾日记(三十)——打造C++ IDE 续
  • 完整教程:.NET驾驭Word之力:玩转文本与格式
  • 综合与实现流程【p3】--(DSP-存储)优化PS系统集成
  • Docker 常用命令详解与参数说明 - 教程
  • 06-排序操作
  • Java运行机制
  • 除自身以外数组的乘积-leetcode
  • rapidXML解析xml文件
  • 大学不止GPA
  • 福昕PDF编辑器专业版破解 v2025 中文版安装使用教程
  • python 架构专业的技术50
  • 本地VMware Workstation Pro的rhel-server-7.9-x86_64服务器配置本地源
  • SCPI 标准命令
  • 前端,真的让我深刻感受到信息闭塞的恐怖 - 指南
  • 2025年十大AI网站构建工具:专家评测与推荐!