二分 B019 LC 小張刷題計畫(貪婪)

2021-10-07 18:13:00 字數 859 閱讀 2411

n 道題,編號從 0 到 n-1,並計畫在 m 天內按照題目編號順序刷完所有的題目(注意,小張不能用多天完成同一題)。

在小張刷題計畫中,小張需要用 time[i] 的時間完成編號 i 的題目。此外,小張還可以使用場外求助功能,通過詢問他的好朋友小楊題目的解法,可以省去該題的做題時間。為了防止「小張刷題計畫」變成「小楊刷題計畫」,小張每天最多使用一次求助。

我們定義 m 天中做題時間最多的一天耗時為 t(小楊完成的題目不計入做題總時間)。請你幫小張求出最小的 t是多少。

輸入:time = [1,2,3,3], m = 2

輸出:3

解釋:第一天小張完成前三題,其中第三題找小楊幫忙;第二天完成第四題,並且找小楊幫忙。這樣做題時間最多的一天花費了 3 的時間,並且這個值是最小的。

限制:

1 <= time.length <= 10^5

1 <= time[i] <= 10000

1 <= m <= 1000

題意

time[i] 表示 i

ii 題需要的時間,你可以將題目分成 m 天來做,其中每份只可以可捨去一道題,問至少要多少天才能把題目做完

我們肯定是不做耗時最長的那一道題的,然後如果做題時間超出了 t,那麼就要新開一天做剩下的題

class

solution

else

}return

true;}

public

intmintime

(int

a,int m)

return r;

}}

複雜度分析

LCP 12 小張刷題計畫(二分查詢)

1.問題描述 為了提高自己的 能力,小張制定了 leetcode 刷題計畫,他選中了 leetcode 題庫中的 n 道題,編號從 0 到 n 1,並計畫在 m 天內按照題目編號順序刷完所有的題目 注意,小張不能用多天完成同一題 在小張刷題計畫中,小張需要用 time i 的時間完成編號 i 的題目...

python刷題 二分查詢

def binarysearch nums,target left 0 right len nums 1 while left right mid right left 2 if nums mid target return true elif nums mid target left mid 1 ...

刷題 二分搜尋 (1)

模板 找出最左邊的乙個,最右邊的乙個,和長度 注意找左位置時要判斷 1 不可以是字串結尾,不然為0或為空 2 不可以不等於key include include include using namespace std intn,m const int n 100003 int d n intmain...