《慕课网玩转算法面试》笔记及习题解答1

来源:互联网 发布:淘宝店怎么加入天猫 编辑:程序博客网 时间:2024/06/05 05:11

算法面试是什么?

1.算法面试不仅是要求一个正确的结果,不是一个考试,思路本身比结果更重要。


什么是正确的思考方式?

1.对于问题的细节和应用环境, 可以和面试官沟通。

2.算法面试是一个和面试官探讨问题解决方案的过程,沟通很重要,它暗示了你的思考方式


常见问题

项目经历和遇到的实际问题

遇到最深的bug?

面向对象

设计模式

网络相关;安全相关;内存相关;并发相关

系统设计;scalability


通过过去了解你的思考行为方式

遇到最大的挑战?

犯过的错误?

遭遇的失败?

最享受的工作内容遇到冲突的处理方式?

做过最与众不同的事儿?


准备好问题问面试官


整个小组的大概的运行模式是怎样的?

整个项目的后续规划是如何的?

这个产品中的某个问题是如何解决的?

我对某个技术很感兴趣,在这个小组中我后续会有怎样的机会深入这种技术?


如何准备算法面试


高级数据结构和算法被提及的概率很低

红黑树

计算几何

B-tree

数论

斐波那契数列

FFT


不要轻视基础算法和数据结构,而只关注”有意思“的问题

基础:

各种排序

堆、二叉树、图

链表、栈、堆、队列、哈希表、图、Trie、并查集

深度优先 、广度优先、二分查找、递归

分治、贪心、回溯等



合适的OJ

leetcode 适合面试

hackerRank  对问题的分类很详细,偏难


解决算法面试问题的整体思路

1.注意题目中的条件

比如”有序“就暗示了二分,

比如有logn就暗示了分治

比如无需考虑空间,那就暗示了空间换时间

2.没有思路的时候

(1)给自己几个测试用例,测试一下

(2)不要忽视暴力解法

3.如何优化算法

(1)遍历常见的算法思路

(2)遍历常见的数据结构

(3)空间换时间 (哈希表)

(4)预处理信息(排序)


4.实际编写的问题

(1)极端条件的判断

(2)变量名语义化

(3)模块化,复用性



阅读全文
0 0
原创粉丝点击