復(fù)盤|第74場雙周賽
將數(shù)組劃分成相等數(shù)對
【哈希表】所有數(shù)字是否都是偶數(shù)頻率。
【一次遍歷】在遍歷數(shù)組的同時判斷奇偶性。
字符串中最多數(shù)目的子字符串
【貪心 + 一次遍歷】設(shè)pattern[0] = a, pattern[1] = b,a插入的位置越左,答案包含的個數(shù)越多,b插入的位置越靠右,答案的個數(shù)越多。那么a應(yīng)置于text最左側(cè),b應(yīng)置于text最右側(cè),遍歷text,每遇到一個b,就累加左邊a的個數(shù),需特判a=b的情況。代碼里,放a or 放b可以一次遍歷:放a在最左側(cè),每次b都會多算一個a,答案多cb個(c為b在text中的出現(xiàn)次數(shù)),放b在最右側(cè),b會與text所有a組成子序列,答案會多ca個(c是a在text中的出現(xiàn)次數(shù))
將數(shù)組和減半的最少操作次數(shù)
【堆模擬】每次將堆頂減半,直到不低于總和的一半。
【堆模擬優(yōu)化】不用浮點數(shù)——將每個數(shù)都乘2的冪次,并且原地修改。
用地毯覆蓋后的最少白色磚塊
【DP】定義dp[i] [j] 為用i條地毯覆蓋前j塊地板時,沒被覆蓋的白色地板的最少數(shù)目。轉(zhuǎn)移狀態(tài)是是否使用第i條地毯,且其末尾覆蓋第j塊地板。注意j < carpetLen * i 的dp[i]均為 0。
【DP】滾動數(shù)組優(yōu)化壓縮第一維。