1.很多算法都可以通过递归和循环两种方式实现。
通常基于递归的实现算法代码会比较简洁,但性能不如基于循环的实现算法。
2.通常排序与查找是面试考察算法的重点。
重点掌握冒泡排序,快速排序,二分法查找
3.如果面试要求在二数组(具体表现为迷宫或者棋盘)上搜索路径,那么我们可以尝试使用回溯法。
通常回溯法很适合用递归的代码实现,如果不允许,可以考虑用栈来模拟递归的过程
4.如果面试题是求某个问题的最优解,并且该问题可以分为多个子问题,那么我们可以尝试用动态规划。在使用自上而下的递归思想去分析动态规划问的时候,我们会发现重叠的更小的子问题,为了避免不必要的重复代码,我们用自上而下的循环代码来实现
如果提示说分解子问题的时候是不是存在特殊的选择,如果选择特殊的选择将一定会得到最优解,说明可能适用贪婪算法;
网友评论