blob: e77c3839e726a20e2bc6a464d649cf39e265e99d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
面试中的 coding 准备
## 1. 一些基本结论(一般而言)
- coding 是面试通过的必要条件,也即coding不过,一般不过,coding过了,会增色很多;
- 尤其是不仅能提供很好的解法,而且还有很好的coding软件工程素养,比如输入空值判断(入参校验)、边界判断,注释,变量函数类的命名,会给面试官留下很好的印象;
- coding 的难度同面试者与岗位的匹配度成反比,也即越匹配,coding会越简单,越不匹配,会相对难些;
- 比如面试官会在题库中准备一道相对难的题目,一道相对简单的题目;
- 面试中的 coding 是一个互动的过程,
- 第一步,了解题目,输入是什么,输出是什么;
- 第二步,勾兑解法,暴力的解法,时间空间度复杂更优的解法,直到得到一个面试官肯定的解法,然后开始coding,切忌闷头就开始写代码;
- 第三步,如果没有特别好的思路,一般都可以询问面试官能否提示下思路,毕竟coding理应考察的编程素养,而不是背过该题;
## 2. 如何刷题
- 按题型系统性刷题(这些类型在leetcode里边都有一些代表性题目)
- 字符串/数组
- 链表
- 二叉树
- 堆/优先队列
- 动态规划
- dfs
- 高频题目一定要刷过一遍(几乎没有面试官能原创地想出一道新题);
- 我在面试中遇到的高频题目:
- 数组的全部子集,leetcode 78,这道题目快手出过,字节也出过;
- leetcode 62. Unique Paths,也出过多次;
- 53. 最大子数组和
- 一个取巧的办法
- 对一些经典的高频题目,把代码打印出来,每次面试前花一个小时过一遍,这样只需要两三次,这些题的解法都在脑海里了;
## 3. 类型题归类
- 区间(interval)
- 253. Meeting Rooms II
|