机考介绍
1.
机考为三道算法题目,难度为
2
道简单,
1
道中等,需要自己处理输入输出,分值为
100
分、
100
分、
200
分。总分
400
分,平台在牛客。
2.
摄像头一定要开,避免离开座位,左右晃头,以免系统误判作弊。
3.
考试过程须控制好做题节奏,切记不要在一道题目上花费过多的时间,合理分配时间。
刷题建议
1.
遇到不会的题怎么办?
万事开头难,好在算法的比我们之前做的数学题死板多了。一开始遇到题目不会是非常非常常见
的,我建议遇到不会的题目或者自己想了半天还没有思路的题目,这么做:
1.
直接看评论区答案
(牛客按照热度降序,
LeetCode
按照点赞数降序,注意
LeetCode
有时候官
方题解非常绕,可以优先看非官方的)。争取记住看答案后就明白这么做的原因然后背住大
概的思路。
2.
第二天按照自己的记忆和理解再刷一遍这个题。
3.
第五天再刷一次。
就是说按照遗忘曲线的规律来刷题,并且整理套路(套路可以看评论区的高票答案)。我觉得刷
题不仅在多,而且还要让我们刷的每一个题目有价值。其实刷题多了就会发现大多数题目套路都
是一致的。
2.
题目都有好多解法,怎么办?
对于让人眼前一亮,属于奇技淫巧,我强烈建议记下来学习一波。大多数情况下可以参考下面题
型汇总,对于题型汇总中的高权重题型,建议掌握下这个方法,非高频的以后再说。
3.
牛客还是
LeetCode
?
两个平台在我看来都可以,但是考虑到最终机考在牛客,如果平时比较习惯刷
LeetCode
,一定要在 牛客上下面的高频考题都刷几题,熟悉输入输出。下面附上刷题链接。
牛客
https://www.nowcoder.com/exam/oj?tab=%E7%AE%97%E6%B3%95%E7%AF%87&topicId
=196&page=1
可以根据知识点来过滤题型
牛客
-
华为考题
https://www.nowcoder.com/ta/huawei
LeetCode
https://leetcode-cn.com/problemset/all/
可以根据标签来过滤题型
4.
要不要写输入输出?
答案是
要的
。虽然现在很多牛客的题目没要求构造输入输出(牛客叫核心代码模式),但是实际
考试还是需要的(牛客叫
ACM
模式),平时刷题需要注意区分,多刷需要自己构造的。尤其是二叉
树之类的题目,输入输出构造会比较花时间,练习的时候多留意输入输出构造,机试可以节省很
多时间。
5.
实际、独立、按时练习
实际:不要只看解法,要实际去练,脑和手并不一致。
独立:独立完成,事后再看解析,做题过程不要看答案。
按时:全心投入,
100
分题要在
40
分钟内完成答题,
200
分题要在
70
分钟内完成
题型汇总
按照算法的难度和频率大致可以分为
必会
和
进阶
两种类型,每个子项后面的数字表示近期题型出现的次
数,并不绝对正确,可以当做大概的参考。大家实际刷题中可以根据题库提供的功能筛选,按照热度、
题解数等。
必会
1.
字符串处理(
880
)
2.
排序(
580
)
3.
递归(
265
)
4.
谈薪算法(
254
)
5.
进制转换(
158
)
6.
栈(
156
)
7.
滑窗(
151
)
8.
队列(
127
)
9.
树(
100
)
10.
位运算(
68
)
11.
正则(
42
)
进阶
1.
图(
103
)
2.
链表(
84
)
3.
排列组合(
77
)
4.
前缀和(
70
)
5.
深度优先(
69
)
6.
广度优先(
48
)
7.
状态机(
58
)
8.
回溯(
47
)
9.
分支(
38
)
10.
二分查抄(
23
)
建议
1.
建议优先掌握必会部分的内容,这部分出现频次高且难度相对较低,短时间内刷题性价比高。
2.
对于进阶部分,图往往伴随着深度优先和广度优先出现,我建议优先准备链表、广度优先深度优
先、二叉树的遍历(能应付二叉树路径统计等题型)。其余有经历再准备。对于链表、广度优先
和深度优先,
LeetCode
和牛客上有很多现成的答题模板,大家可以当做公式一样进行参考。
参考套路
1.
史上最全遍历二叉树详解
https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/leetcodesuan-fa-xiu-li
an-dong-hua-yan-shi-xbian-2/
2. BFS
算法框架详解
https://leetcode-cn.com/problems/open-the-lock/solution/wo-xie-liao-yi-tao-bfs-suan-fa-kuang-jia
-jian-dao-/
3.
图文详解
BFS, DFS
https://leetcode-cn.com/circle/article/YLb5l4/
4. labuladong
的算法小抄
https://github.com/labuladong/fucking-algorithm
比较全,但是建议只看题型汇总中的高频题型
参考题目
牛客
https://www.nowcoder.com/ta/huawei
简单题
1. HJ12
字符串反转
2. HJ11
数字颠倒
3. HJ54
表达式求积
4. HJ106
字符逆序
5. HJ76
尼科彻斯定力
6. HJ75
公共子串计算
7. HJ86
求最大连续
bit
数
8. HJ85
最长回文子串
9. HJ100
等差数列
10. HJ87
密码强度等级
中等题
1. HJ10
字符个数统计
2. HJ46
截取字符串
3. HJ60
查找组成一个偶数最接近的两个素数
4. HJ40
统计字符
5. HJ14
字符串排序
6. HJ5
进制转换
7. HJ59
找出字符串中第一个只出现一次的字符
8. HJ58
输入
n
个整数,输出其中最小的
K
个
9. HJ81
字符串字符匹配
LeetCode
https://leetcode-cn.com
1.
剑指
offer 62
题: 圆圈中最后剩下的数字
2. 3
:无重复字符的最长子串
采用滑窗法
3. 14
:最长公共前缀
4. 151
:翻转字符串里的词
5. 2047
:字符串中的单词数
6. 581
:最短无序连续子数组
7. 1071
:字符串的最大公因子
8. 1111
:有效括号的嵌套度
9.
面试题
17.08
: 马戏团人塔