復盤|第327場周賽
正整數(shù)和負整數(shù)的最大計數(shù)
【遍歷】
【二分】找0和1的位置,0左邊是負數(shù),1右邊是正數(shù)。
執(zhí)行 K 次操作后的最大分數(shù)
【最大堆】需要一個找到和修改最大值的數(shù)據(jù)結(jié)構(gòu),可以直接把數(shù)組取反變成最大堆(堆的底層是數(shù)組)。
使字符串總不同字符的數(shù)目相等
【枚舉】枚舉word1中和word2中的每一個字符,最壞復雜度是O(26^2 + n + m),分類討論x == y 和 x != y的情況。
過橋的時間
【堆模擬】建立4個堆,每個堆都記錄工人下標和完成時間(到達橋的時間),這4個堆從左到右分別表示:workL:新倉庫正在放箱的工人;waitL:左邊等待過橋的工人;waitR:右邊等待過橋的工人;workR;舊倉庫正在搬箱的工人。記錄當前時間cur,不斷循環(huán)直到所有箱子被搬完,每次循環(huán): ①把完成時間不超過cur的workL彈出,放入waitL中;②把完成時間不超過cur的vorkR彈出,放入waitR中;③如果watR不為空,出堆,過橋,更新cur為過完橋的時間,然后把這個工人放入workL中(記錄完成時間);④否則如果watL不為空,出堆,過橋,更新c2ur為過完橋的時間,然后把這個工人放入workR中(記錄完成時間),同時把n減一;⑤否則說明cur過小,找個最小的放箱/搬箱完成時間來更新cur。循環(huán)結(jié)束后,不斷彈出wokR,過橋,最后一個工人過完橋的時間即為答案。