题型汇总
按照算法的难度和频率大致可以分为必会和进阶两种类型,每个子项排序表示考察的频率,序号越低,考察频率越高,比如数组是考察频率最高的。大家实际刷题中可以根据题库提供的功能筛选,按照热度、题解数等进行筛选。
必会
- 数组
- 字符串
- 排序
- 贪心
- 递归
- 循环
- 滑窗
- 栈
- 进制转换
- 位运算
- 队列
- 哈希表
- 链表
- 线性表
- 二分查找
进阶
- 图
- 树
- DFS搜索
- BFS搜索
- 动态规划
- 前缀和
- 排列组合
- 矩阵
- 双指针
- 回溯
- 状态机
- 并查集
- 正则表达式
- 分治
- 枚举
- 统计
建议
- 必会部分知识点倾向于出现在100分题中,进阶知识点倾向于出现在200分题中。建议必会部分优先掌握1-10知识点,进阶部分优先掌握1-4知识点,这部分出现频次高,短时间内刷题性价比高。
- 对于进阶部分,图往往伴随着深度优先和广度优先出现,我建议优先广度优先深度优先、二叉树的遍历(能应付二叉树路径统计等题型)。其余有精力再准备。对于链表、广度优先和深度优先,LeetCode和牛客上有很多现成的答题模板,大家可以当做公式一样进行参考。
参考套路
- 史上最全遍历二叉树详解
https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/leetcodesuan-fa-xiu-li
an-dong-hua-yan-shi-xbian-2/ - BFS算法框架详解
https://leetcode-cn.com/problems/open-the-lock/solution/wo-xie-liao-yi-tao-bfs-suan-fa-kuang-jia
-jian-dao-/ - 图文详解 BFS, DFS
https://leetcode-cn.com/circle/article/YLb5l4/ - labuladong 的算法小抄
https://github.com/labuladong/fucking-algorithm
比较全,但是建议只看题型汇总中的高频题型
必会题目
题目的答案语言可能比较单一,大家可以根据题目内容进行关键字搜索,找到自己语言的答案,答案为别人写的,不是官方参考答案,大家可以当做有思路的参考。这部分题目一定要知道具体的做法。
这部分的题目尽量都要掌握。
-
字符串分割 →(字符串)
-
组成最大数 →(逻辑)
https://python.iitter.com/%E9%A6%96%E9%A1%B5/248622.html (已失效) -
统计射击比赛成绩 →(集合)
-
字符串序列判定 →(字符串)
-
键键盘的输出 →(逻辑)
-
检查是否存在满足条件的数字组合 →(数组)
-
数组拼接 →(数组)
-
考勤信息 →(逻辑)
-
按单词下标区间翻转文章内容 →(数组)
-
最大括号深度 →(峰值)
-
字符串加密 →(字符串)
-
整数对最小和 →(数组)
-
求字符串中所有整数的最小和 →(字符串)
-
乱序整数序列两数之和绝对值最小 →(数组)
-
非严格递增连续数字序列 →(字符串)
-
分积木
https://blog.nowcoder.net/n/36e682ed2a0a455cbbfa4dc4dd24e280 -
连续字母长度 →(字符串)
-
滑动窗口最大和 →(数组)
-
素数之积 →(逻辑)
-
仿LISP运算 →(逻辑)
-
贪吃蛇 →(逻辑)
-
解密犯罪时间
https://www.its203.com/article/weixin_44224529/117932485?2022-03-31 -
求满足条件的最长子串的长度
https://www.jianshu.com/p/edc1efd18a67 -
机器人走迷宫 →(动态规划)
-
高效的任务规划 →(动态规划)
-
书籍叠放→(动态规划)
-
二叉树遍历
https://www.codeleading.com/article/43985735740/ -
区间交集
https://blog.nowcoder.net/n/fd28c4bd1367426eb973a3e62e79a24e
https://blog.csdn.net/weixin_44052055/article/details/125833252
https://juejin.cn/post/7126937539612508167/
- 分月饼
https://javamana.com/2021/12/20211206054724872r.html - 找最小数
https://blog.nowcoder.net/n/60b56945100944cc987cefdd02db1b08 - 简易内存池
https://blog.51cto.com/u_15127575/3271270 - 服务失效判断
https://blog.nowcoder.net/n/82d7ba4e145e48e2b203b1ee63d9b153 - 图像物体的边界
https://leetcode-cn.com/circle/discuss/Bu1fD6/view/oIQ50T/ - 跳格子游戏
https://blog.nowcoder.net/n/8971e4919a324ada973297044015397e - 数组二叉树
https://www.idchg.com/info/86685/
题目可以参考这个博客,不 建议购买https://blog.nowcoder.net/n/b3f4a031eea2422c9c42e0f71d
c6e161 - 考古学家
https://blog.nowcoder.net/n/9876a8a7bf104ec7ab88c350f268b8de - 解压报文
https://www.codeleading.com/article/50015743571/ - 最长的指定瑕疵度的元音子串
https://www.icode9.com/content-1-1259108.html - 目录删除
https://www.cnblogs.com/skyshi/p/15969831.html - 火锅
https://cdmana.com/2022/03/202203260546548598.html - 服务器广播
https://www.codeleading.com/article/14505696344/ - 二叉树的广度优先遍历
https://www.cnblogs.com/gcter/p/15469584.html - 找单词
https://blog.nowcoder.net/n/581f8f196a8a4f98a0a05334daa4b6b1?from=nowcoder_improve - 招聘
http://www.noobyard.com/article/p-vvnvrixx-px.html
某公司组织一场公开招聘活动… - 斗地主之顺子
https://blog.nowcoder.net/n/d2039c7bb5d74c7da969f731f036d700
参考题目
牛客 https://www.nowcoder.com/ta/huawei
简单题
- HJ12 字符串反转
- HJ11 数字颠倒
- HJ54 表达式求积
- HJ106 字符逆序
- HJ76 尼科彻斯定力
- HJ75 公共子串计算
- HJ86 求最大连续bit数
- HJ85 最长回文子串
- HJ100 等差数列
- HJ87 密码强度等级
中等题
- HJ10 字符个数统计
- HJ46 截取字符串
- HJ60 查找组成一个偶数最接近的两个素数
- HJ40 统计字符
- HJ14 字符串排序
- HJ5 进制转换
- HJ59 找出字符串中第一个只出现一次的字符
- HJ58 输入n个整数,输出其中最小的K个
- HJ81 字符串字符匹配
LeetCode https://leetcode-cn.com
- 剑指offer 62 题: 圆圈中最后剩下的数字
- 3:无重复字符的最长子串采用滑窗法
- 14:最长公共前缀
- 151:翻转字符串里的词
- 2047:字符串中的单词数
- 581:最短无序连续子数组
- 1071:字符串的最大公因子
- 1111:有效括号的嵌套度
- 面试题 17.08: 马戏团人塔
真题
华为od机考真题(JAVA)
华为机试高频题目(Java实现)