归并算法https://www.cnblogs.com/chengxiao/p/6194356.html
最大堆的排序,插入,删除https://blog.csdn.net/sinat_27026243/article/details/77507745
LeetCode 23 Merge k Sorted Lists(合并k个有序链表)
LeetCode 是一个不错的地方。如果你能完成其中 50% 的题,那么你基本上可以想面哪里就面哪里了。这里,你要知道,一些面试官也是新手,他们也是从网上找一些算法题来考你。所以,你不用太害怕算法题,都是有套路的。比如:
如果是数据排序方面的题,那基本上是和二分查找有关系的。
如果是在一个无序数组上的搜索或者统计,基本上来说需要动用 O(1) 时间复杂度的 hash 数据结构。
在一堆无序的数据中找 top n 的算法,基本上来说,就是使用最大堆或是最小堆的数据结构。
如果是穷举答案相关的题(如八皇后、二叉树等),基本上来说,需要使用深度优先、广度优先或是回溯等递归的思路。
动态规划要重点准备一下,这样的题很多,如最大和子数组、买卖股票、背包问题、爬楼梯、改字符……这里有一个Top 20 的动态规划题的列表 。
一些经典的数据结构算法也要看一下,比如,二叉树、链表和数组上的经典算法,LRU 算法,Trie 树,字符串子串匹配,回文等,这些常见的题都是经常会被考到的。
基本上来说,算法题主要是考察应聘者是否是计算机专业出身的,对于基本的数据结构和算法有没有相应的认识。你做得多了,就是能感觉得到其中的套路和方法的。所以,本质来说,还是要多练多做
网友评论