左神演算法初級班筆記6 字首樹 貪心

2021-10-09 08:37:18 字數 1082 閱讀 1663

arr2中有哪些字元,是作為arr1中某個字串字首出現的?請 列印

arr2中有哪些字元,是作為arr1中某個字串字首出現的?請列印 arr2**現次數最大的字首。

不要企圖證明貪心的正確性,想幾個貪心策略之後,用對數器去證明正確的即可。

1.按最低字典序拼接字串
給定乙個字串型別的陣列strs,找到一種拼接方式,使得把所 有字串拼起來之後形成的字串具有最低的字典序。

2.切分金條總代價最小
一塊金條切成兩半,是需要花費和長度數值一樣的銅板的。比如 長度為20的金條,不管切成長度多大的兩半,都要花費20個銅板。一群人想整分整塊金 條,怎麼分最省銅板?

例如,給定陣列,代表一共三個人,整塊金條長度為 10+20+30=60. 金條要分成10,20,30三個部分。 如果, 先把長 度60的金條分成10和50,花費60 再把長度50的金條分成20和30, 花費50 一共花費110銅板。 但是如果, 先把長度60的金條分成30和30,花費60 再把長度30 金條分成10和20,花費30 一共花費90銅板。

輸入乙個陣列,返回分割的最小代價。

3.最多做k個專案的最大利潤(ipo)
輸入: 引數1:代價陣列costs; 引數2: 利潤陣列profits; 引數3:正數k; 引數4:啟動資金w 。costs[i]表示i號專案的花費 profits[i]表示i號專案的利潤, k表示你不能並行、只能序列的最多做k個專案 。

說明:你每做完乙個專案,馬上獲得的收益,可以支援你去做下 乙個 專案。 一次只能做乙個專案。

輸出: 你最後獲得的最大錢數。

4.安排最多的宣講場次
一些專案要占用乙個會議室宣講,會議室不能同時容納兩個專案 的宣講。 給你每乙個專案開始的時間和結束的時間(給你乙個數 組,裡面 是乙個個具體的專案),你來安排宣講的日程,要求會 議室進行 的宣講的場次最多。

返回這個最多的宣講場次。

左神演算法課初級班P1 簡單排序

插入排序 選擇排序 對數器異或運算 二分法的詳解與拓展 遞迴行為與master公式 執行程式中乙個跟樣本量無關的操作為常數操作,分析時間複雜度就是分析常數操作的個數,然後拋棄掉低階項。評價演算法先參考時間複雜度然後空間複雜度,最後分析在不同樣本量下程式執行的速度。給乙個數字序列,5,3,4,2,1 ...

左神演算法筆記(九) 字首樹擴充

給定乙個陣列,求子陣列的最大異或和。乙個陣列的異或和為陣列中所有的數異或起來的結果。之前做個乙個找到異或和為0的最長子陣列,思路是將每乙個節點當做異或和的最後乙個節點,求解最長的子陣列。同樣這個題目可以以這種方法解決。以i位置結尾的最大異或和的值,最大的異或和一定包含在其中。暴力解法就是從0 i,1...

左神演算法初級班3中運用堆結構求解的那個問題 題解

有乙個容器,一次吐出數字,讓你求給定任意時刻所吐出來的數的中位數 分別建立乙個大根堆和乙個小根堆,用來維護排序後的陣列小於中間數字的數 放入大根堆中 和大於中間數字的數 放入小根堆中 當大根堆和小根堆中資料個數相差大於1時,就讓資料多的那個堆中的數跑到資料少中的那個堆中去,這樣能夠保證兩個堆的堆頂的...