摘要:
Remove Nth Node From End of List 要点 first和second指针的距离:n是从1开始计数的,所以second指向的node和被删的node之间共n个node(包括这两个边界node)。first指向被删node的前一个,这样才能进行list node的删除 根据上 阅读全文
摘要:
Letter Combinations of a Phone Number 这题iterate方法的基本思路就是连续做+1,+1的含义就是移动同一数字对应字母下一个index处。算法是两层循环,外层是每一个输出,内层是一个数的每一位。难点是循环的invariant:外层是carry!=1,因为如果内 阅读全文
摘要:
House Robber I/II/III 这题代表了单向线性dp的基本pattern: build local best value at each element and track the global optimal. 这题的要点是local是前k个房间的最优解,这个解不一定要选第k个房间。 阅读全文
摘要:
The Skyline Problem 要点:这题是难题,但是是重点难题,因为google常考,而且很多变形。题本身的pattern就是从左到右更新区间内存在值的最大值(对于这题就是skyline)。最简单的解法就是从左到右根据每个区间的enter/exit point更新存在值的集合。 同时因为区 阅读全文
摘要:
Permutation Sequence 原理:一个permutation是n位,在第i位的值取决于有多少个i 1位的组合。这i 1位的组合是在高位pick完之后剩下的数中 细节: 低位的个数和哪个数已经pick了是无关的,只有选择具体数时候才有关 不同于decimal,位数是固定的,所以不能用k 阅读全文
摘要:
Meeting Rooms I/II 要点:这题和skyline类似,利用了interval start有序的特点,从左向右处理,用一个heap来动态表示当前占用rooms的时间段,所以heap的size就是room数。具体来说, heap是end time的min heap,如果新的interva 阅读全文
摘要:
House Robber I/II/III 这题代表了单向线性dp的基本pattern: build local best value at each element and track the global optimal. 这题的要点是local是前k个房间的最优解,这个解不一定要选第k个房间。 阅读全文