火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

算法讲解071【必备】子数组最大累加和问题与扩展-下

作者: 作者的头像   huolong , 时间:2025-04-30 15:36:52 , 所有人可见, 阅读  3

前置知识: 讲解005-对数器 讲解046-构建前缀信息的技巧 讲解054-单调队列,一定要掌握,本节课题目6需要,后续讲“多重背包的单调队列优化”也需要 讲解070-子数组最大累加和问题与扩展-上 【必备】课程的动态规划大专题从讲解066开始,建议从头开始学习会比较系统

本节课是上节课内容的继续,见识更多与累加和相关的题目 而且有4个题来自真实大厂笔试题,都提供了对数器的验证代码来确保正确 很多解法的思路非常巧妙


题目1 乘积最大子数组 给你一个double类型数组 nums 请你找出数组中乘积最大的非空连续子数组 并返回该子数组所对应的乘积 测试链接 : https://leetcode.cn/problems/maximum-product-subarray/

注意: 题目中虽然给定的是int类型的数组 但讲述的方法是int、double类型的数组都能正确的做法


题目2 子序列累加和必须被7整除的最大累加和 给定一个非负数组nums, 可以任意选择数字组成子序列,但是子序列的累加和必须被7整除 返回最大累加和 对数器验证


题目3 魔法卷轴 给定一个数组nums,其中可能有正、负、0 每个魔法卷轴可以把nums中连续的一段全变成0 你希望数组整体的累加和尽可能大 卷轴使不使用、使用多少随意,但一共只有2个魔法卷轴 请返回数组尽可能大的累加和 对数器验证


题目4 三个无重叠子数组的最大和 给你一个整数数组 nums 和一个整数 k 找出三个长度为 k 、互不重叠、且全部数字和(3 * k 项)最大的子数组 并返回这三个子数组 以下标的数组形式返回结果,数组中的每一项分别指示每个子数组的起始位置 如果有多个结果,返回字典序最小的一个 测试链接 : https://leetcode.cn/problems/maximum-sum-of-3-non-overlapping-subarrays/


题目5 可以翻转1次的情况下子数组最大累加和 给定一个数组nums, 现在允许你随意选择数组连续一段进行翻转,也就是子数组逆序的调整 比如翻转[1,2,3,4,5,6]的[2~4]范围,得到的是[1,2,5,4,3,6] 返回必须随意翻转1次之后,子数组的最大累加和 对数器验证


题目6 删掉1个数字后长度为k的子数组最大累加和 给定一个数组nums,求必须删除一个数字后的新数组中 长度为k的子数组最大累加和,删除哪个数字随意 对数器验证

注意: 确保 讲解054-单调队列 已经掌握,不然会听不懂


—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码