目录
牛客还是LeetCode?
最终机考在牛客,如果平时比较习惯刷LeetCode,一定要在牛客上的高频考题都刷几题,熟悉输入输出。下面附上刷题链接。
牛客
可以根据知识点来过滤题型
牛客-华为机试
可以根据标签来过滤题型
LeetCode
要不要写输入输出?
答案是要的。虽然现在很多牛客的题目没要求构造输入输出(牛客叫核心代码模式),但是实际考试还是需要的(牛客叫ACM模式),平时刷题需要注意区分,多刷需要自己构造的。尤其是二叉树之类的题目,输入输出构造会比较花时间,练习的时候多留意输入输出构造,机试可以节省很多时间。
怎么鉴定我刷题成果?
请参考下文的必会题目,如果对于这些题目都有思路并且能解答,那么恭喜你,可以准备考试了!
实际、独立、按时练习
实际:不要只看解法,要实际去练,脑和手并不一致。
独立:独立完成,事后再看解析,做题过程不要看答案。
按时:全心投入,100分题要在40分钟内完成答题,200分题要在70分钟内完成
题型汇总
按照算法的难度和频率大致可以分为必会和进阶两种类型,每个子项排序表示考察的频率,序号越低,考察频率越高,比如数组是考察频率最高的。大家实际刷题中可以根据题库提供的功能筛选,按照热度、题解数等进行筛选。
必会
- 数组
- 字符串
- 排序
- 贪心
- 递归
- 循环
- 滑窗
- 栈
- 进制转换
- 位运算
- 队列
- 哈希表
- 链表
- 线性表
- 二分查找
进阶
- 图
- 树
- DFS搜索
- BFS搜索
- 动态规划
- 前缀和
- 排列组合
- 矩阵
- 双指针
- 回溯
- 状态机
- 并查集
- 正则表达式
- 分治
- 枚举
- 统计
建议
- 必会部分知识点倾向于出现在100分题中,进阶知识点倾向于出现在200分题中。建议必会部分优先
- 掌握1-10知识点,进阶部分优先掌握1-4知识点,这部分出现频次高,短时间内刷题性价比高。
- 对于进阶部分,图往往伴随着深度优先和广度优先出现,我建议优先广度优先深度优先、二叉树的遍历(能应付二叉树路径统计等题型)。其余有精力再准备。对于链表、广度优先和深度优先,LeetCode和牛客上有很多现成的答题模板,大家可以当做公式一样进行参考。
参考套路
这部分的题目尽量都要掌握
牛客
简单题
HJ12 字符串反转
HJ11 数字颠倒
HJ54 表达式求积
HJ106 字符逆序
HJ76 尼科彻斯定力
HJ75 公共子串计算
HJ86 求最大连续bit数
HJ85 最长回文子串
HJ100 等差数列
HJ87 密码强度等级
中等题
HJ10 字符个数统计
HJ46 截取字符串
HJ60 查找组成一个偶数最接近的两个素数
HJ40 统计字符
HJ14 字符串排序
HJ5 进制转换
HJ59 找出字符串中第一个只出现一次的字符
HJ58 输入n个整数,输出其中最小的K个
HJ81 字符串字符匹配
LeetCode
3:无重复字符的最长子串
14:最长公共前缀
151:翻转字符串里的词
2047:字符串中的单词数
581:最短无序连续子数组
1071:字符串的最大公因子
1111:有效括号的嵌套度
面试题 17.08: 马戏团人塔