Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

20天学 Algorithm

Version

Recommend Resources:


Recommend Start Here:


大多数开发者都非常讨厌编程面试。一个主要的原因是,大多数开发者认为他们必须解决数百个问题才能准备好。他们不知道从哪里开始,所以通常随机地解决问题,没有任何计划。

一个月后,他们什么都不记得了。他们尝试解决之前已经解决过的问题。你猜怎么着?他们解决不了。

这里有一些建议:

  • 专注于学习模式,而不是解决大量的问题。
  • 按照直观的顺序学习新的主题和模式。
  • 反复练习——回顾并重新解决问题。

编程面试学习计划

步骤 1
熟悉如何使用大O时间和空间复杂度来评估算法性能。你应该了解以下表示的含义:

  • 常数时间 - O(1)
  • 对数时间 - O(log n)
  • 线性时间 - O(n)
  • 线性对数时间 - O(n log n)
  • 多项式时间 - O(n^k),其中k是常数
  • 指数时间 - O(k^n),其中k是常数
  • 阶乘时间 - O(n!)
    你还应该对时间复杂度的比较有直观的理解。对于某些问题,最好的解法是指数级的。对于其他问题,我们可以将它们优化为多项式时间。

步骤 2
接下来的步骤是学习基础的数据结构和算法。
你应该涵盖的一些主题包括:

算法和技术

步骤 3
在熟悉了基础知识之后,你应该开始掌握在编码面试中最常见的模式。

下面是一些常见的面试模式(非详尽列表):

编程面试模式