410.分割数组的最大值
给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。
注意:
数组长度 n 满足以下条件:
- 1 ≤ n ≤ 1000
- 1 ≤ m ≤ min(50, n)
示例:
输入: nums = [7,2,5,10,8] m = 2 输出:18 解释: 一共有四种方法将nums分割为2个子数组。 其中最好的方式是将其分为[7,2,5] 和 [10,8], 因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。
class Solution {
public:
int splitArray(vector<int>& nums, int m) {
int n = nums.size();
vector<int> sums(n + 1, 0);
vector<vector<int>> dp(m + 1, vector<int>(n + 1, INT_MAX));
dp[0][0] = 0;
for (int i = 1; i <= n; ++i) {
sums[i] = sums[i - 1] + nums[i - 1];
}
for (int i = 1; i <= m; ++i) {
for (int j = 1; j <= n; ++j) {
for (int k = i - 1; k < j; ++k) {
int val = max(dp[i - 1][k], sums[j] - sums[k]);
dp[i][j] = min(dp[i][j], val);
}
}
}
return dp[m][n];
}
};
410.分割数组的最大值相关推荐
- LeetCode 410——分割数组的最大值
1. 题目 2. 解答 此题目为 今日头条 2018 AI Camp 5 月 26 日在线笔试编程题第二道--最小分割分数. class Solution {public:// 若分割数组的最大值为 ...
- leetcode 410. 分割数组的最大值(二分法)
1. 题目描述 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组.设计一个算法使得这 m 个子数组各自和的最大值最小.注意: 数组长度 n 满足以下条件:1 ≤ n ≤ ...
- LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)
文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 DP 1. 题目 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组. 设计一个算法使得这 m 个子数组各自和 ...
- LeetCode 410. 分割数组的最大值
题目描述: 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组.设计一个算法使得这 m 个子数组各自和的最大值最小. 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ ...
- 410. 分割数组的最大值
题解: 链接:https://leetcode-cn.com/problems/split-array-largest-sum/ 下面这种情况是dfs是超时的,有时间加一下记忆化 class Solu ...
- Leetcode 410.分割数组的最大值(最优解是二分法)
Time: 20190904 Type: Hard, DP 题目描述 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组.设计一个算法使得这 m 个子数组各自和的最大值最 ...
- 7、leetcode410 分割数组的最大值
leetcode410 分割数组的最大值 给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组. 设计一个算法使得这 m 个子数组各自和的最大值最小. 示例 ...
- 四边形不等式技巧——分割数组的最大值(画家问题)
题目 给定一个整型数组arr,数组中的每个值都为正数,表示完成一幅画作需要的时间,再给定一个整数num,表示画匠的数量,每个画匠只能画连在一起的画作.所有的画家并行工作,请返回完成所有的画作需要的最少 ...
- 分割数组的最大值—leetcode410
给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组.设计一个算法使得这 m 个子数组各自和的最大值最小. 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 ...
- 410. Split Array Largest Sum 分割数组的最大值
给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组.设计一个算法使得这 m 个子数组各自和的最大值最小. 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 ...
最新文章
- Spring复习笔记:4
- linux+xampp搭建WordPress个人网站过程详解
- CSS响应式:根据分辨率加载不同CSS的几个方法
- hdu 1014 Uniform Generator 数论
- 64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本
- 如何将根文件系统制作成yaffs格式,并设置从yaffs启动
- c语言编程软件支持win8,C语言编程软件vc6.0(支持win7 / win8 / 10)官方免费版6.0
- js实现椭圆轨迹_javascript椭圆旋转相册实现代码
- 硬核干货 | 人脸识别的原理是什么?
- OJ上runtime error报错原因
- wince 德赛西威2413_德赛西威NAV262大众全系通用DVD导航产品介绍
- 九种引人瞩目的开源大数据技术
- 写法更自由的Table表格--BeeGridTable
- 如何使用Couchbase实现文档版本控制
- AFNetworkReachabilityManager检测网络状态
- Python小作业 列举红黄绿小球的组合
- 34岁王晓松的成绩单:新城控股收入股价双增,毛利率骤降9%
- Zigbee——串口无线透传分析
- 推荐一个资料:数学之美-by-吴军.pdf
- 解决采集卡数据波动问题