算法面试笔记
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省略。
如何写出正确的程序
- 明确变量含义
- 维持住循环不变量
- 取小数据量集调试(考虑一些特殊值,边界)
- 大数据量测试(测试程序性能)
这篇关于算法面试笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南