目錄
重要資料
c++面試題系列
牛客力扣
nc121:字串的排列
華為機試
hj16:購物單
hj24合唱隊
hj61放蘋果???
dd大牛的《揹包九講》
演算法萌新如何學好動態規劃(3)
動態規劃之揹包問題系列
c++面試題系列290題
計算字串相似度
字串的排列和組合問題
nc126_換錢最少貨幣數
nc116_把數字翻譯成字串
有依賴的揹包問題,參考
小資料的有依賴揹包問題,可以直接轉為分組揹包問題。(搜「揹包九講完整版.pdf」有詳細講解)
0-19分鐘
dd大牛的揹包九講
首先計算每個數在最大遞增子串中的位置
186 186 150 200 160 130 197 200 quene
1 1 1 2 2 1 3 4 遞增計數
然後計算每個數在反向最大遞減子串中的位置--->計算反向後每個數在最大遞增子串中的位置
200 197 130 160 200 150 186 186 反向quene
1 1 1 2 3 2 3 3 遞減計數
然後將每個數的遞增計數和遞減計數相加
186 186 150 200 160 130 197 200 quene
1 1 1 2 2 1 3 4 遞增計數
3 3 2 3 2 1 1 1 遞減計數
4 4 3 5 4 2 4 5 每個數在所在佇列的人數+1(自己在遞增和遞減中被重複計算)
如160這個數,
在遞增佇列中有2個人數
150 160
在遞減佇列中有2個人數
160 130
那麼160所在佇列中就有3個人
150 160 130
每個數的所在佇列人數表達就是這個意思
總人數 - 該數所在佇列人數 = 需要出隊的人數
* 放置蘋果的方法數
* 演算法思想:放蘋果有兩種情況,一種是有盤子為空,一種是每個盤子中都有蘋果
* 令(m,n)表示將m個蘋果放入n個盤子中的擺放方法總數
* 1.假設有1個盤子為空,則(m,n)問題轉化為將m個蘋果放在n-1個盤子上,即求得(m,n-1)
* 2.假設所有的盤子都裝有蘋果,則每個盤子上至少有乙個蘋果,即還剩下m-n個蘋果,
* 問題轉化為將m-n個蘋果放到n個盤子上的擺放方法總數,即(m-n,n)
牛客 拜訪 動態規劃
左右中只能選乙個方向,若選擇左只能一直向左走。上下中只能選擇乙個方向,若選擇下只能一直向下。所以有2種情況 1 二者位置在對角線上 2 兩者位置重合或處於同一行或同一列 class visit if map i j 2 同行或同列 這裡應該還能優化到下面的對角線那種情況 懶 if si ei if ...
牛客網 動態規劃(C ) 合唱團
有 n 個學生站成一排,每個學生有乙個能力值,牛牛想從這 n 個學生中按照順序選取 k 名學生,要求相鄰兩個學生的位置編號的差不超過 d,使得這 k 個學生的能力值的乘積最大,你能返回最大的乘積嗎?include include include include using namespace std...
字串交錯組成 牛客網,動態規劃
對於三個字串a,b,c。我們稱c由a和b交錯組成當且僅當c包含且僅包含a,b中所有字元,且對應的順序不改變。請編寫乙個高效演算法,判斷c串是否由a和b交錯組成。給定三個字串a,b和c,及他們的長度。請返回乙個bool值,代表c是否由a和b交錯組成。保證三個串的長度均小於等於100。測試樣例 abc ...