LeetCode LCP 12. 小張刷題計劃
2023-06-02 11:20 作者:您是打尖兒還是住店呢 | 我要投稿
為了提高自己的代碼能力,小張制定了 LeetCode 刷題計劃,他選中了 LeetCode 題庫中的 n 道題,編號從 0 到 n-1,并計劃在 m 天內(nèi)按照題目編號順序刷完所有的題目(注意,小張不能用多天完成同一題)。
在小張刷題計劃中,小張需要用 time[i] 的時間完成編號 i 的題目。此外,小張還可以使用場外求助功能,通過詢問他的好朋友小楊題目的解法,可以省去該題的做題時間。為了防止“小張刷題計劃”變成“小楊刷題計劃”,小張每天最多使用一次求助。
我們定義 m 天中做題時間最多的一天耗時為 T(小楊完成的題目不計入做題總時間)。請你幫小張求出最小的 T是多少。
示例 1:
輸入:time = [1,2,3,3], m = 2
輸出:3
解釋:第一天小張完成前三題,其中第三題找小楊幫忙;第二天完成第四題,并且找小楊幫忙。這樣做題時間最多的一天花費了 3 的時間,并且這個值是最小的。
示例 2:
輸入:time = [999,999,999], m = 4
輸出:0
解釋:在前三天中,小張每天求助小楊一次,這樣他可以在三天內(nèi)完成所有的題目并不花任何時間。
?
限制:
1 <= time.length <= 10^5
1 <= time[i] <= 10000
1 <= m <= 1000
最大最小化問題就是二分法的問題,關(guān)鍵就是如何二分,
這里面是給個大值,飯后去判斷在time數(shù)組,limit是多少的情況下,能不能刷題成功;
二分學(xué)得好,刷題少不了。。。
執(zhí)行用時:13 ms, 在所有?Java?提交中擊敗了10.81%的用戶
內(nèi)存消耗:54.1 MB, 在所有?Java?提交中擊敗了20.72%的用戶
標(biāo)簽: