LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)
文章目錄
- 1. 題目
- 2. 解題
- 2.1 二分查找
- 2.2 DP
1. 題目
給定一個非負整數(shù)數(shù)組和一個整數(shù) m,你需要將這個數(shù)組分成 m 個非空的連續(xù)子數(shù)組。
設計一個算法使得這 m 個子數(shù)組各自和的最大值最小。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/split-array-largest-sum
著作權歸領扣網絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。
2. 解題
2.1 二分查找
類似題目:
LeetCode 875. 愛吃香蕉的珂珂(二分查找)
LeetCode LCP 12. 小張刷題計劃(二分查找)
LeetCode 1011. 在 D 天內送達包裹的能力(二分查找)
LeetCode 1062. 最長重復子串(二分查找)
LeetCode 5438. 制作 m 束花所需的最少天數(shù)(二分查找)
LeetCode 1102. 得分最高的路徑(優(yōu)先隊列BFS/極大極小化 二分查找)
LeetCode 1231. 分享巧克力(極小極大化 二分查找)
0 ms 7 MB
2.2 DP
- dp[i][j] 表示前 i 個數(shù),分成 j 組的最小的最大和的值
- 先預處理求出前綴和 sum
- dp[i][j]=min(dp[i][j],max(dp[k][j?1],sum[i]?sum[k])),k∈[0,i]dp[i][j] = min(dp[i][j], max(dp[k][j-1], sum[i]-sum[k])), k \in[0,i]dp[i][j]=min(dp[i][j],max(dp[k][j?1],sum[i]?sum[k])),k∈[0,i]
412 ms 8.2 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Kaggle] Housing Pri
- 下一篇: LeetCode 732. 我的日程安排