笔试如果用牛客会让自己写输入输出(参考https://ac.nowcoder.com/acm/contest/320#question);面试手撕一般写函数即可
just for me && 复习时间少:红色较难免看,黄色简单免看,黑色看一下代码,绿色练习敲码
!!!做每题之前都要想一下这道题为什么会想到用这种方法!!!
一、图论
最短路径:leetcode743(djkstra)、399(floyd);poj1847、1062(djkstra)、2240(floyd、bellman)、3259(bellman)
拓扑排序:[判断有向图是否有环:leetcode210、802]、310;poj1094(模板题)、2585
二分图:leetcode785(判断是否是二分图);poj3041、3020(最大匹配的应用)
最小生成树:poj2485(模板题)、3522、1789
二、动态规划
!!!将问题的求解转化为子问题的求解,比如dp[i]可以由dp[i-1]或者dp[i-2]之类的求得!!!
背包问题:leetcode322、279(完全)、416、494(01);poj3624(经典01)、1837(多重)、1276(多
重)、1384(完全)、2063(完全)
数字三角形:poj3176;leetcode120、118、119
二进制:leetcode338
括号匹配:leetcode32
树形动规:leetcode96、337;poj1463
爬楼梯类型(第i步的结果与前几步有关):leetcode746、70、91、639
最大连续子序列和:leetcode53、152;最大跳跃子序列的和:leetcode740、213;连续子序列的和:leetcode303、304
LIS(最长上升子序列):leetcode646、673、139、140;poj1836
LCS(最长公共子序列):[模板题:poj1159;leetcode583]、[变形(字符串匹配):leetcode712、72、10、poj1080、3267](要注意字符串是从下标0还是1开始储存的,以及初始化的含义)
回文串:leetcode5、647、516;poj3280、1159(这道也属于LCS)
股票问题:leetcode121、122、309、123(前两道用不着dp)
矩阵:leetcode63、97、174、221
三、搜索
二分搜索:leetcode81、69、50、74、240、162、4
bfs:leetcode111、116、117、127、662;poj3126、2251
回溯法:leetcode47、90、491、77、39、40、93、131、17、22、95、[棋盘:51;poj1321]
dfs:leetcode[二维网格:leetcode79、329、37、200、poj3620、2488、3009]、[BST:中序遍历:99、501、538;中序/普通DFS:98;普通DFS:108、105、106、235]、[二叉树:236、110、111、112、113、437、129、543、124、687、617]、87、494、802;poj2531、1186、1934
四、数据结构
数组:leetcode41、54、238、169、448、442、287、581、384
排序:leetcode56、349、493;快排、归并、选择、冒泡、插入、希尔、计数(参照笔记和cpp文件)
数字:leetcode7、9
双指针:leetcode75、88、15、18、42、283、713、76、438、3
链表:leetcode2、19、23、[翻转链表:206、234、92、24、25]、61、82、86、114、141、142、160、143、147、148
字符串:leetcode557、14、8、38、30、68、125、680;poj3080、1035
并查集:leetcode684、721、130
哈希表map:leetcode732、253、1、49、697、336、133、138、146、560;poj1840、2503
哈希表set:leetcode771、36、500、720、128
栈:leetcode332、20、394、71、84、85、402、1047、587、155、94、144、145、739、150
队列:leetcode253、239、215、347;poj1862(c++优先级队列默认从大到小)
树状数组:hdu1166;leetcode307;poj2352(星星等级)、1195(二维数组)
线段树:leetcode211;poj2828、2750
五、贪心法
leetcode55、45、630、122、134、406、621
poj1700、1862、2393、1017、2287
六、数学
位运算:leetcode136、137、461、342
二进制:leetcode89
七、其他题型
334(LIS)