算法面试笔记

2021/7/9 22:10:34

本文主要是介绍算法面试笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

算法面试是什么?

  • 合理的思考方向其实更重要,也是正确完成算法面试题的前提。
  • 算法面试也只是面试的一部分。
  • 目的:
    • 算法面试不是让你给出一个“正确”答案,而是展示给面试官你思考问题的方式。
    • “正确”本身是一个相对的概念。
    • 算法面试不是高考。
    • 把这个过程看做是和面试官一起讨论一个问题的解决方案。
    • 对于问题的细节和应用环境,可以和面试官沟通。
    • 这种沟通很重要,它暗示着你思考问题的方式。

什么是“正确”的回答一个算法问题?

  • 如果是非常难的问题,对你的竞争对手来说,也是难的。
  • 关键在于你所表达出的解决问题的思路。
  • 甚至通过表达解决问题的方向,得出结论:这个问题的解决方案,应该在哪一领域,我可以通过查阅或者进一步学习解决问题。

当没有思路的时候

  • 用几个简单的测试用例(简单的情况),试验一下,用笔画画。
  • 不要忽视暴力解法,暴力解法通常是思考的起点。

优化算法思路

  • 遍历常见的算法思路
  • 遍历常见的数据结构
  • 空间和时间的交换(哈希表)
  • 预处理信息(排序)

时间复杂度

  • n表示数据规模,f(n)表示n的函数。
  • O(f(n))表示运行算法所执行的指令数,与f(n)成正比。
    • 二分查找法 O(logn) = k*logn
    • 寻找数组中的最大最小值 O(n) = k*n
    • 归并排序算法 O(nlogn)= k*nlogn
    • 选择排序 O(n^2)= k*n^2
    • k为常数,在算法中对于时间起到的影响作用不大(n足够大时),so省略。

如何写出正确的程序

  • 明确变量含义
  • 维持住循环不变量
  • 取小数据量集调试(考虑一些特殊值,边界)
  • 大数据量测试(测试程序性能)


这篇关于算法面试笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程