算法面试

关键

算法面试并不是看你给出的是不是正确答案,而是思考路径,对于问题的细节和应用环境,不断深入。
关键在于解决问题的思路。
甚至通过分析解题方向,得到应该在哪个领域去找。

算法面试的准备范围:

  1. 各种排序算法
  2. 基础数据结构和算法的实现:堆、二叉树、图
  3. 基础数据结构的使用:链表、栈、队列、哈希表、图、并查集
  4. 基础算法:深度优先、广度优先、二分查找、递归
  5. 基本算法思想:递归、分治、回溯搜索、贪心、动态规划

技术面试的问题

  • 梳理项目中遇到的问题?
  • 遇到印象最深的bug
  • 面向对象
  • 设计模式
  • 网络相关;安全相关;内存相关;并发相关;
  • 系统设计;

关于项目:

项目来源:

  1. 实战课程学习
  2. 创建自己的项目
    2.1 自己做小应用:
    2.2 自己解决的实际问题:爬虫;数据分析;词频统计;自动充值;自动邮箱通知。
    2.3 不是项目的项目:总结
    2.4 分享:自己的技术博客;github

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

  • 遇到的最大的挑战
  • 最享受的工作内容

准备好合适的问题问面试官

  • 整个小组的大概运行模式是怎样的?
  • 整个项目的后续规划是如何的?
  • 这个产品中的某个问题是如何解决的?
  • 为什么项目中会选择某些技术?标准?
  • 我对某个技术很感兴趣,在小组中我会有怎样的机会深入?

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

  • 红黑树
  • 计算几何
  • B-Tree
  • 数论
  • 斐波那契堆
显示 Gitment 评论