LeetCode讲解篇之1043. 分隔数组以得到最大和

news/2024/10/11 3:52:43/

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

对于这题我们这么考虑,我们选择以数字的第i个元素做为分隔子数组的右边界,我们需要计算当前分隔子数组的长度为多少时能让数组[0, i]进行分隔数组的和最大

我们用数组f表示[0, i)区间内的分隔数组的最大和

那么数组[0, i]进行分隔数组的最大和 = 最后一个子数组区间分别为[i - 1, i]、 [i - 2, i]、 … 、[i - k + 1, i]时能得到[0, i]范围内分隔数组的最大值的最大值
即f[i] = f[j] + (i - j) * maxVal,其中j为最后一个子数组区间的左边界,maxVal为[j, i]范围内arr数组的最大值

题解代码

func maxSumAfterPartitioning(arr []int, k int) int {n := len(arr)// [0, i)区间内的分隔数组的最大和f := make([]int, n + 1)for i := 1; i <= n; i++ {maxVal := arr[i - 1]for j := i - 1; j >= 0 && j >= i - k; j-- {f[i] = max(f[i], f[j] + (i - j) * maxVal)if j > 0 && arr[j - 1] > maxVal {maxVal = arr[j - 1]}}}return f[n]
}

题目链接

https://leetcode.cn/problems/partition-array-for-maximum-sum/


http://www.ppmy.cn/news/1537254.html

相关文章

【VUE】Virtual Dom的优势在哪里

Virtual DOM 是一个轻量的 JavaScript 对象模型&#xff0c;它以 JS 对象的形式来描述真实的 DOM &#xff0c;可以在内存中进行操作、比较&#xff0c;然后只对需要更新的部分进行实际的 DOM 操作&#xff0c;从而最小化 DOM 操作的次数&#xff0c;提高渲染效率。 Vue.js 中…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-02

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-02 1. APM: Large Language Model Agent-based Asset Pricing Models Authors: Junyan Cheng, Peter Chin https://arxiv.org/abs/2409.17266 APM: 基于大型语言模型的代理资产定价模型&#xff08;LLM Agent-b…

MySQL进阶 - 索引

01 索引概述 【1】概念&#xff1a;索引就是一种有序的数据结构&#xff0c;可用于高效查询数据。在数据库表中除了要保存原始数据外&#xff0c;数据库还需要去维护索引这种数据结构&#xff0c;通过这种数据结构来指向原始数据&#xff0c;这样就可以根据这些数据结构实现高…

Deepin V23中安装屏幕保护程序(xcreensaver)

一、系统&#xff1a;Deepin V23 用apt install screensaver安装的屏幕保护程序提示太旧&#xff0c;无法运行。于是采用从官网(https://www.jwz.org/xscreensaver/)下载源码来编译安装。 二、下载源码并解压 #cd /usr/local/src #tar -zxvf xscreensaver-6.09.tar.gz 三安装相…

75 华三vlan端口隔离

华三vlan端口隔离 为了实现端口间的二层隔离&#xff0c;可以将不同的端口加入不同的VLAN&#xff0c;但VLAN资源有限。采用端口隔离特性&#xff0c;用户只需要将端口加入到隔离组中&#xff0c;就可以实现隔离组内端口之间二层隔离&#xff0c;而不关心这些端口所属VLAN&…

chmod修改文件夹及子文件夹权限-需要加-R

chmod修改文件夹及子文件夹权限-需要加-R chmod 755 /home/aaa/test -R 755有3位&#xff0c;最高位7是设置文件所有者访问权限&#xff0c;第二位是设置群组访问权限&#xff0c;最低位是设置其他人访问权限。 7表示所有权限&#xff08;读、写、执行&#xff09;、5表示…

python+request+unittest+ddt自动化框架

参考资料&#xff1a; 用户中心 - 博客园 抓包模拟器笔记 肖sir__接口自动化pythonrequestddt&#xff08;模版&#xff09; - xiaolehua - 博客园 pythonrequestunittestddt自动化框架 博文阅读密码验证 - 博客园 肖sir__python之模块configparser - xiaolehua - 博客园 c…

掌握 C# 多线程与异步编程

现代应用程序通常需要执行复杂的计算或处理 I/O 操作&#xff0c;这些操作可能会导致主线程阻塞&#xff0c;从而降低用户体验。C# 提供了多线程与异步编程的多种工具&#xff0c;让我们能够高效地并发处理任务。本文将介绍 C# 中的多线程与异步编程&#xff0c;包括 Thread 类…