復(fù)盤(pán)|第73場(chǎng)雙周賽
數(shù)組中緊跟 key 之后出現(xiàn)最頻繁的數(shù)字
【哈希表】遍歷數(shù)組中的nums[i] = key,找到nums[i + 1] = target就在哈希表里加一。
將雜亂無(wú)章的數(shù)字排序
【自定義排序】線轉(zhuǎn)換為數(shù)位列表,然后根據(jù)給定映射規(guī)則進(jìn)行映射
【調(diào)庫(kù)】需要將原數(shù)字進(jìn)行映射,Python maketrans() 方法用于創(chuàng)建字符映射的轉(zhuǎn)換表。自定義比較函數(shù),(num2map, idx),從到大排序,python穩(wěn)定排序,排序后相同元素的相對(duì)位置和原來(lái)相同。
有向無(wú)環(huán)圖中一個(gè)節(jié)點(diǎn)的所有祖先
【拓?fù)渑判颉客ㄟ^(guò)拓?fù)渑判虻捻樞虮闅v每個(gè)節(jié)點(diǎn)并計(jì)算祖先節(jié)點(diǎn)集合,如果所有父節(jié)點(diǎn)的祖先節(jié)點(diǎn)集合都已計(jì)算完成,直接堆這些集合加上父節(jié)點(diǎn)本身取并集。代碼中,anc存每個(gè)節(jié)點(diǎn)的祖先節(jié)點(diǎn)集合,e鄰接表存出邊,indeg存入度,用BFS求解拓?fù)渑判颉?/p>
得到回文串的最少操作次數(shù)
【貪心】每次固定字符串最左邊的字母 a不變,找出距離字符串右側(cè)最近的 a,把它交換到字符串最右邊。這樣字符串的頭尾字母就相等了。把字符串的頭尾去掉,就變成了子問(wèn)題。把所有子問(wèn)題的答案加起來(lái)就是最少交換次數(shù)。