天天看点

【LeetCode分类刷题之玩儿转算法面试】第1章 算法面试到底是什么鬼? 学习笔记(一)1.1 算法面试不仅仅是正确的回答问题1.1 算法面试不仅仅是正确的回答问题

目录

1.1 算法面试不仅仅是正确的回答问题

1、这个课程的目标是什么?

2、算法面试是什么?

(1)什么是给出合理的思考路径

(2)“正确”本身是一个相对概念

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

1.1 算法面试不仅仅是正确的回答问题

1、这个课程的目标是什么?

让大家在面对面试中的算法问题时,有一个合理的思考路径;面对算法面试,不畏惧。因为面试中的算法问题,通常并不“复杂”,远远不需要啃完一本《算法导论》。

2、算法面试是什么?

让大家在面对面试中的算法问题时,有一个合理的思考路径:不代表能够“正确”回答每一个算法问题,但是合理的思考方向其实更重要,也是正确完成算法面试问题的前提;算法面试优秀不意味着技术面试优秀;技术面试优秀不意味着能够拿到Offer。

(1)什么是给出合理的思考路径

算法面试的目的不是给出一个“正确”答案,而是展示给面试官你思考问题的方式。

(2)“正确”本身是一个相对概念

算法面试不是高考。把这个过程看作是和面试官一起探讨一个问题的解决方案。对于问题的细节和应用环境,可以和面试官沟通。这个沟通本身很重要,它暗示着你思考问题的方式。

例:对一组数据进行排序。

我们需要对一组数据进行排序:快速排序算法

【LeetCode分类刷题之玩儿转算法面试】第1章 算法面试到底是什么鬼? 学习笔记(一)1.1 算法面试不仅仅是正确的回答问题1.1 算法面试不仅仅是正确的回答问题

这组数据有什么样的特征?

①有没有可能包含有大量重复的元素?如果有这种可能的话,三路快排是更好地选择。

②是否大部分数据距离它正确的位置很近?是否近乎有序?如果是这样的话,插入排序是更好地选择。

③是否数据的取值范围非常有限?比如对学生成绩排序。如果是这样的话,计数排序是更好地选择。

④是否需要稳定排序?如果是的话,归并排序是更好地选择。

⑤数据的存储状况是怎样的?是否是使用链表存储的?如果是的话,归并排序是更好地选择。数据的大小是否可以装载在内存里?数据量很大,或者内存很小,不足以装载在内存里,需要使用外排序算法。

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

正确还包含对问题的独到见解;优化;代码规范;容错性;等等等等……

这个课程不仅仅是给出解决算法问题的代码。

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