1.一般背包问题:贪心算法每次放入最优解,最优量度的选取是关键
2.n个有序文件的最佳合并模式:构造哈弗曼树求得最小加权路径 (选最小的两个数求和代替原来两个数,直到只剩最后一个数)
3.地接拉斯特算法:只能求指定单元最短路径,且图加权不能为负数
4.弗洛伊德算法:可求任意两单元最短路径,dp--子问题是什么,如何状态转移?
5.最长公共子串序列:dp经典算法,一个dp记录最长长度,一个用来记录路径
6.0/1背包:dp经典算法,证明dp可行性--假设一个最优解,其中的子优解有更优解,证明这个比最优解更优,矛盾
dp[i][j]中i代表只用前i个物品,j代表背包只有重量X的时候。dp[i][j]=max[dp[i-1][j], dp[i-1, j-wi]+vi]if j>wi
7.多段图问题:dp经典算法
8.八皇后问题:回溯法
9.手撕LRU:双向链表用来模拟LRU的队列机制(新放入与刚用过的放排头),哈希列表存储每个节点的地址以用来加速定位节点。
10.卡塔兰数:解决出栈顺序,找钱顺序,限制的排序等问题:Catalan(n)=C(2n, n)/n+1 递推 (4n-2)/n+1