玩转算法面试-面试分析

来源:互联网 发布:node express router 编辑:程序博客网 时间:2024/06/06 01:28

面试准备:

算法:

  • 算法思路
  • 算法素质
  • 思考方向(方式)
  • 算法优秀不代表技术优秀(算法只是技术的一部分)
  • 算法考虑问题全面
  • 对问题的理解深入
  • 对问题的独到见解:优化,代码规范,容错性

这里写图片描述
这里写图片描述

技术:

  • 参与项目,项目达到需求,然后完善
  • 工作人士,研究生,本科生(毕业设计,其他课程设计)
  • 实习找不到
    • 在线教育
    • 自己做应用,做得恶心?自己用(计划表,备忘录,播放器)
    • 自己解决小问题:小爬虫,数据分析,词频统计
    • 总结书籍代码
    • 博客,分享,github

这里写图片描述
这里写图片描述

个人:

这里写图片描述
这里写图片描述

  • 学习《算法导论》对于智商一般的人来说,切忌完美主义。挫败感。(最好的就是理解一个算法后,再带着目的去深入理解推导)
  • 《算法导论》强调理论证明
  • 这里写图片描述
    • 信息学竞赛(ACM)和算法面试有差距

面试准备范围:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

算法面试问题整体思路:

注意题目中的条件

这里写图片描述

  • 有序-二分查找发
  • logn 分治法,搜索树,数据排序
  • 开辟额外空间来换取时间上的优化
  • 数据量小O(N^2)

暴力法

这里写图片描述

这里写图片描述

优化算法

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

  • 这里写图片描述

实际编写(健壮性)

这里写图片描述

面试过程(沟通):

这里写图片描述

对一组数据进行排序(快速排序吗?)

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

算法实践

  • 选择合适的online judge
    • 不要偏向于程序设计竞赛的OJ
      • Codefroces(俄罗斯)
      • topcoder(美国)
      • codechef(印度)
    • 选择面向面试的OJ
      • LeetCode(面试问题)
        • https://leetcode.com/
      • HackerRank(分类详细)
        • https://www.hackerrank.com/

学习和实践做题要平衡