課程5: dp問題1,滾動數(shù)組優(yōu)化噪珊,博弈類晌缘,記憶化搜索
Longest Increasing Continuous Subsequence:左邊找一下,右邊找一下
Maximum Subarray:好像用不到動態(tài)規(guī)劃
Maximal Square:square利用邊的性質(zhì)來做遞推
Longest Palindromic Substring:好像直接擴張就可以了痢站,也用不上動態(tài)規(guī)劃
Coins in a Line II:博弈類問題磷箕,直接只考慮一個人的就好
Coins in a Line:和上面那題一樣
House Robber:簡單的dp
Maximum Product Subarray:簡單的dp
Longest Increasing Subsequence:LIS,經(jīng)典的dp
Longest Increasing Continuous Subsequence II:滑雪道問題瑟押,狀態(tài)為以某個點為終點的最長遞減路徑搀捷,用記憶化搜索來做
Maximal Square II:和1很相似
課程6: dp問題2,區(qū)間dp多望,背包問題,雙串比較
Scramble String: 算是記憶化搜索類吧
Longest Common Subsequence:簡單的二重匹配
Edit Distance:同樣簡單的二重匹配
終點復(fù)習(xí)背包問題1氢烘,2怀偷,3,4播玖,5椎工,6
Distinct Subsequences:挺直觀的雙鏈匹配
Interleaving String:也算是挺簡單的一道
Minimum Adjustment Cost: D[i][v]: 把index = i的值修改為v,所需要的最小花費蜀踏,也就是i-1個值調(diào)整到j(luò)维蒙,然后把i位調(diào)整到k時候的最小花費
Burst Balloons:區(qū)間dp,和下面那題是一樣的果覆,都先找到分割點颅痊,然后用記憶化搜索來做
Stone Game :區(qū)間dp,找到分割點局待,也就是當(dāng)合并ij的時候斑响,以k為斷點,也就是合并ik,合并k+1~j然后再把這兩個合并起來钳榨,有些記憶化搜索的意思
Maximal Square II:和maximal square 很類似只是判定條件變了一點點
Post Office Problem:dp[i][l]=dp[j][l-1] + dis[j+1][i] (l-1<=j<i)舰罚。其中dp[i][l]表示在前i個村莊中建l個post的最短距離,j為分隔點薛耻,可以將問題轉(zhuǎn)化為在前j個村莊建l-1個post的最短距離+在第j+1到第i個村莊建1個post的最短距離营罢。其中有個性質(zhì),如元素是單調(diào)排列的饼齿,則在中間位置到各個元素的距離和最小饲漾。
k sum: 用三維動態(tài)規(guī)劃瘟滨。ksum[i][j][l]表示前j個元素里面取l個元素之和為i。
初始化:ksum[0][j][0] =1(j:0~n)能颁,即前j個元素里面取0個元素使其和為0的方法只有1種杂瘸,那就是什么都不取 ksum[i][j][l]=ksum[i][j-1][l]+ksum[i-A[i-1]][j-1][l-1]
Best Time to Buy and Sell Stock IV:dp[i][j] 對前j個元素進(jìn)行最多i次transactions獲取的最大值
K Edit Distance: 實在是太麻煩了,還有那題等Google面試完再看吧伙菊,真是太復(fù)雜了
copy books II: 可以用dp也可以用二分法败玉,不過我已經(jīng)看不下去了,休息一下