-!1. Greedy vs. DP: http://blog.csdn.net/yelbosh/article/details/7649717.
Multiple choices or not: Greedy has only 1 optimal last choice; DP picks the best among several choices (not necessarily optimal)
-2. Consistent Hashing
http://blog.csdn.net/sparkliang/article/details/5279393. A ring, virtual nodes.
Database Sharding
http://blog.csdn.net/bluishglc/article/details/6161475
3. Lock-Free Programming (lock-free queue\map etc.)
http://kukuruku.co/hub/cpp/lock-free-data-structures-introduction
4. 八大排序算法:http://www.cricode.com/3212.html
7. String Search: KMP vs. Boyer-Moore vs. RK
8. 3 solutions to Longest Palindrome: DP\Suffix Tree\Manacher
DP: bottom-up DP
Suffix Tree solution: Longest common string between S and reverse(S) -> deepest non-leaf node
!Manacher: http://blog.csdn.net/bruce_zeng/article/details/8629572: reuse calculated palin-radius due to the symmetric prop
11. ?RMQ
13. A*
14. Joseph Circle: winner is who calls 1. so f[i] = (f[i-1] + k) % n
[ Optional ]
a. *数位dp?
b. Non-deterministic Primality Testing: Miller-Rabin, Solovay-Strassen etc.