1043. 分隔数组以得到最大和

💡 LeetCode 高分题详解 | 数组划分变换求最大和(动态规划)

在刷 LeetCode 的过程中,我们经常会遇到动态规划类的问题,它们虽然看起来难度较高,但一旦掌握思路,解题其实非常有章可循。今天要介绍的这道题就是一个非常经典、值得深入理解的动态规划问题。


🧩 题目描述

给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 的一些连续子数组

每个子数组变换规则如下:

  • 每个子数组的所有元素都将被替换为该子数组中的最大值
  • 最终我们将所有子数组拼接起来,形成一个新的数组;
  • 返回这个新数组的元素总和的最大值

保证答案不会超过 32 位整数范围。


📘 示例

输入: arr = [1,15,7,9,2,5,10], k = 3
输出: 84
解释:
分组方案:[1,15,7] => [15,15,15]
           [9,2,5] => [9,9,9]
           [10]     => [10]
新数组为:[15,15,15,9,9,9,10],总和为 84

🧠 解题思路分析

这道题的核心在于选择怎样分组,使得用最大值替代后乘以子数组长度,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值