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

千问 LeetCode 3077. K 个不相交子数组的最大能量值 Go实现

以下是 LeetCode 3077. K 个不相交子数组的最大能量值 的 Go 语言实现:

func maximumStrength(nums []int, k int) int64 {
n := len(nums)

// 1. 计算前缀和数组,方便快速求取子数组的和
sum := make([]int64, n+1)
for i := 1; i <= n; i++ {
sum[i] = sum[i-1] + int64(nums[i-1])
}

// 2. 定义 dp 数组:dp[i][j] 表示前 j 个元素中选出 i 个不相交子数组的最大能量值
dp := make([][]int64, k+1)
for i := 0; i <= k; i++ {
dp[i] = make([]int64, n+1)
}

// 3. 动态规划填表
for i := 1; i <= k; i++ {
// 划分 i 个子数组至少需要 i 个元素,i-1 个元素无法划分,初始化为负无穷
dp[i][i-1] = -(1 << 60)
mx := int64(-(1 << 60))

// 计算当前第 i 个子数组对应的权重 w
w := int64(k - i + 1)
if i % 2 == 0 {
w = -w
}

// j 代表当前考虑的前 j 个元素,且要保证后面有足够的元素划分剩余的子数组
for j := i; j <= n - (k - i); j++ {
// 维护前缀最大值:max(dp[i-1][L] - sum[L] * w)
val := dp[i-1][j-1] - sum[j-1] * w
if val > mx {
mx = val
}
// 状态转移:不选第 j 个元素,或者以第 j 个元素结尾作为第 i 个子数组
notTake := dp[i][j-1]
take := sum[j] * w + mx
if notTake > take {
dp[i][j] = notTake
} else {
dp[i][j] = take
}
}
}

return dp[k][n]
}

Go 语言实现注意事项:
1. 数据类型:由于子数组的和以及权重乘积可能非常大,Go 中必须使用 int64 类型来存储前缀和 sum 以及 DP 状态 dp,避免整数溢出。
2. 负无穷表示:Go 中没有内置的 Long.MIN_VALUE,可以使用 -(1 << 60) 来安全地表示一个足够小的负无穷值。
3. 核心逻辑:与 Java 版本完全一致,利用前缀和与滑动窗口最大值思想,将原本 O(n^3) 的暴力枚举优化为 O(n times k) 的时间复杂度。

http://www.rkmt.cn/news/1485214.html

相关文章:

  • 化州母婴除甲醛CMA甲醛检测治理公司深度测评:绿呼吸环保稳居榜首 - 一修哥咨询
  • 哈尔滨母婴除甲醛CMA甲醛检测治理公司深度测评:绿呼吸环保稳居榜首 - 一修哥咨询
  • STM32F407主控+ESP32联网的智能家居控制工程(含FreeRTOS多任务调度与陶晶驰HMI界面源码)
  • 2026年海宁市空调维修避坑指南:5家靠谱专业推荐 海宁小李家电维修正规可靠 - 本地品牌推荐
  • 广水母婴除甲醛CMA甲醛检测治理公司深度测评:绿呼吸环保稳居榜首 - 一修哥咨询
  • AI编排:企业级LLM应用落地的数据调度中枢
  • 从一篇大学英语课文,聊聊技术人如何避免成为‘凯文2050’:警惕知识停滞与技能贬值
  • 2026年镇江CPPM课程班期费用怎么核对?众智商学院官网400冯老师资料咨询 - 众智商学院职业教育
  • PHP代码迁移与版本升级指南
  • 手把手教你用RT-Thread点亮CH32V307开发板的LED,并搞定串口打印(附完整工程)
  • 【Redis分布式缓存实战】第18章 Redis全方位性能调优
  • RAGFlow 使用指南:从部署到构建 AI 知识库
  • PID无线调参进阶:基于HC-05蓝牙和SerialPlot,打造你的移动调试工作站
  • 别再只测平面了!手把手教你用Apriltag和Homography矩阵实现3D姿态解算
  • 富阳母婴除甲醛CMA甲醛检测治理公司深度测评:绿呼吸环保稳居榜首 - 一修哥咨询
  • 拒绝暴力洗稿!2026年实测横评10款免费降AI工具:搞定去AIGC痕迹与学术表达双标准 - 降AI实验室
  • 2026电脑显示器选购:高端方案解析与避坑指南 - 服务品牌热点
  • 多 SIM 协作 (DSDS/DSDA) 架构文档
  • GPT-4的1.8万亿参数与2%激活真相:MoE路由机制深度解析
  • 不背单词里没有的单词
  • 2025-2026年上海搬家公司推荐:五大口碑产品评测大件搬运防磕碰市场份额价格 - 品牌推荐
  • 功耗管理与唤醒锁 (WakeLock) 架构文档
  • 玩转SSD1306的8种扫描模式:用Arduino实现OLED动画和特殊显示效果
  • 你的AR/机器人‘眼睛’准吗?手把手教你用手机和A4纸完成相机标定与精度验证
  • 别再复制粘贴了!手把手教你理解CMSIS-DAP离线下载器里那串神秘代码(附ARM反汇编实战)
  • 广州母婴除甲醛CMA甲醛检测治理公司深度测评:绿呼吸环保稳居榜首 - 一修哥咨询
  • Qt调用WPS导出Word报告踩坑记:管理员权限竟是罪魁祸首?
  • 鸿蒙Next实战开发(四):个人中心与系统设置页面开发
  • AIGC】story_agent_loop架构初步探讨5
  • 51单片机+ADC0809测电压不准?可能是这些细节没做好(附校准方法与代码优化)