美文网首页程序园程序员
Udacity 高频算法面试题精讲笔记1-学习秘籍

Udacity 高频算法面试题精讲笔记1-学习秘籍

作者: 赵阳_c149 | 来源:发表于2019-12-09 14:18 被阅读0次

    1. 刷题策略

    课程推荐到leetcode上刷题,因为这里是面试题的集中地,认可度高,甚至其中很多题都是各大名企面试的真题。从面试官的角度来说,从leetcode中选择面试题的做法更为高效。而且,个人感觉,leetcode为算法题按照难度等属性对题目进行分类,更为重要的是,leetcode的评论质量较高,通过阅读别人的评论,也可以受益匪浅。
    课上,老师认为leetcode前600道题是其精华所在,所以应该重点关注。但是不推荐盲目的从头到尾刷题,因为这样做针对性不强,效率也不高。可以把刷题分为三个阶段:

    • 第一阶段
      分专题掌握知识点,在此基础上进行知识拓展。
      对于每个专题:
      easy难度的题完成60%,medium难度的题完成30%,挑少量hard的题完成。
    • 第二阶段
      巩固知识脉络和手感,尽量确保每道题的解法最优。
      easy的题全部做完,medium的题完成40-50。这一阶段的目的是提高速度和准确率。
      对于easy的题,从读题到AC (Accept)应在5min内完成,且要每天做,保持手感。
      对于medium的题,从读题到AC争取控制在20min内。
    • 第三阶段
      可以尝试着拔高,对学到的知识和技巧进行拓展。
      这一阶段,要挑战难题,学习和使用高级算法和数据结构。最好能通过参加比赛提高自己的应试能力。

    2. 课程规划

    数据结构+算法

    3. 小技巧和常见误区

    • 运行速度和时间复杂度:不用执着于优化常数
    • 空间复杂度:没特殊要求不苛求
    • 语言选择:简易C++,python可能有坑
    • 如何确定最优解法:
      问面试官最优复杂度。如果面试官不愿意说(或者怕损失印象分),可以迂回的问一下数据范围(有些题会直接给出)。例如, 如果n=100W,那么n2超过108, 因此一般需要时间复杂度为O(n)或者O(NlogN) ;如果n=1000,那么时间复杂度可能是n2;如果20以内:那么甚至可能是2n

    4.算法面试注意事项

    在面试的过程中,一定要保持冷静。
    拿到题目后可以画样例进行分析,并积极和面试官交流。
    然后分析特殊情况,边界条件。
    再之后,分析一般情况,问问数据范围。

    • 切记:
      不要有冷场时间,尽量不要超过15分钟没有交流

    如果有时间,想一想是否有好的办法。

    通常,面试者需要在白板上写出代码,在这种情况下,要力保代码简明易懂,有能力加上一些注释。同时,注意代码风格,注释和变量名等“软实力”,当然,这些需要在平时的一点一滴的训练中积累经验。

    5. 推荐书单

    • 面向入门级:《算法图解》
    • 经典书籍:《算法导论》 (Introduction to Algorithms)
    • 不同编程语言书籍:《数据结构与算法分析:C语言描述》《数据结构与算法:python语言描述》
    • 面向刷题和工作:《剑指offer》

    相关文章

      网友评论

        本文标题:Udacity 高频算法面试题精讲笔记1-学习秘籍

        本文链接:https://www.haomeiwen.com/subject/qeyqyctx.html