LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
- 2.1 二分查找
- 2.2 DP
1. 題目
給定一個非負整數數組和一個整數 m,你需要將這個數組分成 m 個非空的連續子數組。
設計一個算法使得這 m 個子數組各自和的最大值最小。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/split-array-largest-sum
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 二分查找
類似題目:
LeetCode 875. 愛吃香蕉的珂珂(二分查找)
LeetCode LCP 12. 小張刷題計劃(二分查找)
LeetCode 1011. 在 D 天內送達包裹的能力(二分查找)
LeetCode 1062. 最長重復子串(二分查找)
LeetCode 5438. 制作 m 束花所需的最少天數(二分查找)
LeetCode 1102. 得分最高的路徑(優先隊列BFS/極大極小化 二分查找)
LeetCode 1231. 分享巧克力(極小極大化 二分查找)
0 ms 7 MB
2.2 DP
- dp[i][j] 表示前 i 個數,分成 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
- 下一篇: 02.改善深层神经网络:超参数调试、正则