训练环境设置- 工欲善其事,必先利其器
电脑设置
-
Google 搜索入口
-
Mac: iTerm2 + zsh (oh my zsh)
Windows: Microsoft new terminal: (https://github.com/microsoft/terminal)
-
VSCode; Java: IntelliJ; Python: Pycharm;
-
LeetCode plugin (VSCode & IntelliJ)
Code Style
Java、Python…
-
Google code style
-
Facebook
-
Airbnb
LeetCode
-
leetcode-cn.com 和 题解
-
leetcode.com 和 Discuss board
指法和小操作
-
home, end (行头、行尾)
-
Word 单词、选单词、选整行
-
IDE 的自动补全
-
Top tips for <IDE-name>
自顶向下的编程方式
时间复杂度、空间复杂度
Big O notation
O(1): Constant Complexity 常数复杂度
O(log n): Logarithmic Complexity 对数复杂度
- for (int i = 1; i < n; I = i * 2) { }
O(n): Linear Complexity 线性时间复杂度
- for (int i = 1; i <= n; I = i++) { }
O(n^2): N square Complexity 平方
- for (int i = 1; i <= n; I = i++) {
for (int j = 1; j <= n; j++) {
}
}
O(n^3): N square Complexity 立方
O(2^n): Exponential Growth 指数
- int fib(int n) {
If (n <= 2) return n;
Return fib(n - 1) + fib(n - 2);
}
O(n!): Factorial 阶乘
时间复杂度曲线
image.png
网友评论