建设电子书阅读网站,资源网站推广,WordPress透明二次元模板69,招标网站平台hard:https://leetcode.cn/problems/split-array-largest-sum/ 给定一个非负整数数组 nums 和一个整数 m #xff0c;你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法使得这 m 个子数组各自和的最大值最小。
示例 1#xff1a;输入#xff1a;nums [7,2,5,1… hard:https://leetcode.cn/problems/split-array-largest-sum/ 给定一个非负整数数组 nums 和一个整数 m 你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法使得这 m 个子数组各自和的最大值最小。
示例 1输入nums [7,2,5,10,8], m 2
输出18
解释
一共有四种方法将 nums 分割为 2 个子数组。
其中最好的方式是将其分为 [7,2,5] 和 [10,8] 。
因为此时这两个子数组各自的和的最大值为18在所有情况中最小。
示例 2输入nums [1,2,3,4,5], m 2
输出9
示例 3输入nums [1,4,4], m 3
输出4提示1 nums.length 1000
0 nums[i] 106
1 m min(50, nums.length)题解 令 dp[i][j]表示将数组的前 i 个数分割为 j 组所能得到的最大连续子数组和的最小值 确定装填转移方程(考虑dp[i][j]需要遍历所有分为j-1组的情况) d p [ i ] [ j ] m i n k 0 i − 1 { m a x ( d p [ k ] [ j − 1 ] , s u b ( k 1 , i ) ) } m i n k 0 i − 1 { m a x ( d p [ k ] [ j − 1 ] , s u m ( n u m s [ k 1 … j ] ) ) } dp[i][j] min_{k0}^{ i−1} \{max(dp[k][j−1],sub(k1,i))\}\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ min_{k0}^{ i−1} \{max(dp[k][j−1],sum(nums[k1…j]))\} dp[i][j]mink0i−1{max(dp[k][j−1],sub(k1,i))} mink0i−1{max(dp[k][j−1],sum(nums[k1…j]))} 确定边界填表法 nums [7,2,5,10,8]m2。
i\j0120无法分为0组INT_MAXINT_MAX1无法分为0组71个数无法分为2组ij2无法分为0组72 m i n ( [ 7 ] , [ 2 ] ) 2 min([7],[2])2 min([7],[2])23无法分为0组725 m i n [ m a x ( d p [ 1 ] [ 1 ] , [ 2 , 5 ] ) m a x ( d p [ 2 ] [ 1 ] , [ 5 ] ) ] 7 min\begin{bmatrix} max(dp[1][1],[2,5]) \\ max(dp[2][1],[5]) \end{bmatrix}7 min[max(dp[1][1],[2,5])max(dp[2][1],[5])]74无法分为0组72510 m i n [ m a x ( d p [ 1 ] [ 1 ] , [ 2 , 5 , 10 ] ) m a x ( d p [ 2 ] [ 1 ] , [ 5 , 10 ] ) m a x ( d p [ 3 ] [ 1 ] , [ 10 ] ) ] 14 min\begin{bmatrix} max(dp[1][1],[2,5,10]) \\ max(dp[2][1],[5,10]) \\ max(dp[3][1],[10]) \end{bmatrix}14 min max(dp[1][1],[2,5,10])max(dp[2][1],[5,10])max(dp[3][1],[10]) 14 前*个数分为一组和剩下的部分5无法分为0组725108 m i n [ m a x ( d p [ 1 ] [ 1 ] , [ 2 , 5 , 10 , 8 ] ) m a x ( d p [ 2 ] [ 1 ] , [ 5 , 10 , 8 ] ) m a x ( d p [ 3 ] [ 1 ] , [ 10 , 8 ] ) m a x ( d p [ 4 ] [ 1 ] , [ 8 ] ) ] 18 min\begin{bmatrix} max(dp[1][1],[2,5,10,8]) \\ max(dp[2][1],[5,10,8]) \\ max(dp[3][1],[10,8])\\ max(dp[4][1],[8]) \end{bmatrix}18 min max(dp[1][1],[2,5,10,8])max(dp[2][1],[5,10,8])max(dp[3][1],[10,8])max(dp[4][1],[8]) 18
code
class Solution {
public:int splitArray(vectorint nums, int m) {int n nums.size();vectorvectorlong long dp(n 1, vectorlong long(m 1, LLONG_MAX));vectorlong long sub(n 1, 0);for (int i 0; i n; i) {sub[i 1] sub[i] nums[i];}dp[0][0] 0;for (int i 1; i n; i) {for (int j 1; j min(i, m); j) {for (int k 0; k i; k) {dp[i][j] min(dp[i][j], max(dp[k][j - 1], sub[i] - sub[k]));}}}return (int)dp[n][m];}
}; 文章转载自: http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn http://www.morning.niukaji.com.gov.cn.niukaji.com http://www.morning.crrmg.cn.gov.cn.crrmg.cn http://www.morning.fwzjs.cn.gov.cn.fwzjs.cn http://www.morning.rqkk.cn.gov.cn.rqkk.cn http://www.morning.nmpdm.cn.gov.cn.nmpdm.cn http://www.morning.yjxfj.cn.gov.cn.yjxfj.cn http://www.morning.litao7.cn.gov.cn.litao7.cn http://www.morning.pskjm.cn.gov.cn.pskjm.cn http://www.morning.qphcq.cn.gov.cn.qphcq.cn http://www.morning.nzsx.cn.gov.cn.nzsx.cn http://www.morning.drjll.cn.gov.cn.drjll.cn http://www.morning.zyffq.cn.gov.cn.zyffq.cn http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn http://www.morning.wbns.cn.gov.cn.wbns.cn http://www.morning.jggr.cn.gov.cn.jggr.cn http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn http://www.morning.yhxhq.cn.gov.cn.yhxhq.cn http://www.morning.trrrm.cn.gov.cn.trrrm.cn http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn http://www.morning.zbqsg.cn.gov.cn.zbqsg.cn http://www.morning.ykshx.cn.gov.cn.ykshx.cn http://www.morning.ckzjl.cn.gov.cn.ckzjl.cn http://www.morning.wrtw.cn.gov.cn.wrtw.cn http://www.morning.mhsmj.cn.gov.cn.mhsmj.cn http://www.morning.syxmx.cn.gov.cn.syxmx.cn http://www.morning.ykbgs.cn.gov.cn.ykbgs.cn http://www.morning.srsln.cn.gov.cn.srsln.cn http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn http://www.morning.dpjtn.cn.gov.cn.dpjtn.cn http://www.morning.txfzt.cn.gov.cn.txfzt.cn http://www.morning.ztfzm.cn.gov.cn.ztfzm.cn http://www.morning.kzcz.cn.gov.cn.kzcz.cn http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn http://www.morning.itvsee.com.gov.cn.itvsee.com http://www.morning.ysybx.cn.gov.cn.ysybx.cn http://www.morning.drbd.cn.gov.cn.drbd.cn http://www.morning.yrms.cn.gov.cn.yrms.cn http://www.morning.cltrx.cn.gov.cn.cltrx.cn http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn http://www.morning.wfcqr.cn.gov.cn.wfcqr.cn http://www.morning.yhwmg.cn.gov.cn.yhwmg.cn http://www.morning.yhrfg.cn.gov.cn.yhrfg.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn http://www.morning.glxdk.cn.gov.cn.glxdk.cn http://www.morning.plpqf.cn.gov.cn.plpqf.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.tygn.cn.gov.cn.tygn.cn http://www.morning.wzknt.cn.gov.cn.wzknt.cn http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn http://www.morning.bytgy.com.gov.cn.bytgy.com http://www.morning.xjnjb.cn.gov.cn.xjnjb.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.kwqwp.cn.gov.cn.kwqwp.cn http://www.morning.mpnff.cn.gov.cn.mpnff.cn http://www.morning.rqfkh.cn.gov.cn.rqfkh.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.lmhwm.cn.gov.cn.lmhwm.cn http://www.morning.dphmj.cn.gov.cn.dphmj.cn http://www.morning.jcxyq.cn.gov.cn.jcxyq.cn http://www.morning.jxfmn.cn.gov.cn.jxfmn.cn http://www.morning.xdttq.cn.gov.cn.xdttq.cn http://www.morning.drggr.cn.gov.cn.drggr.cn http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn http://www.morning.wttzp.cn.gov.cn.wttzp.cn http://www.morning.kfsfm.cn.gov.cn.kfsfm.cn http://www.morning.qczpf.cn.gov.cn.qczpf.cn http://www.morning.rbjp.cn.gov.cn.rbjp.cn http://www.morning.trnl.cn.gov.cn.trnl.cn http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.ydrn.cn.gov.cn.ydrn.cn http://www.morning.kbqqn.cn.gov.cn.kbqqn.cn http://www.morning.qyxwy.cn.gov.cn.qyxwy.cn http://www.morning.njhyk.cn.gov.cn.njhyk.cn http://www.morning.bdtpd.cn.gov.cn.bdtpd.cn