Re: [閒聊] 每日leetcode已回收

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/06/19 18:35), 編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串383/1550 (看更多)
補一下這兩天的每日 1482. Minimum Number of Days to Make m Bouquets 給一個array bloomDay,bloomDay[i]代表第i朵花會在幾天開花 需要做m個花束、每個花束需要k朵花 請問最少需要幾天才可以收集完? 思路: 找出bloomDay裡最大、小的天數 再用這兩個天數進行2分搜尋 看一下有沒有足夠的花束 大概就這樣 golang code : func minDays(bloomDay []int, m int, k int) int { n := len(bloomDay) if n < m*k { return -1 } maxday := slices.Max(bloomDay) minday := slices.Min(bloomDay) chk := func(day int) bool { group, cnt := 0, 0 for _, val := range bloomDay { if val <= day { cnt++ if cnt == k { group++ cnt=0 } } else { cnt = 0 } } return group >= m } for maxday > minday { midday := minday + (maxday-minday)/2 if chk(midday) { maxday = midday } else { minday = midday + 1 } } return minday } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.125.91 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1718793326.A.0DD.html

06/19 18:53, 1年前 , 1F
大師
06/19 18:53, 1F
文章代碼(AID): #1cShHk3T (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cShHk3T (Marginalman)