华为OD技术面试手撕算法押题
如果你打开了这个文档,那么说明你大概率已经通过了OD机考,并且在进行技术面试的准备了,恭喜你!
正如我在文档华为OD技术面试须知 中所说,技术面试的手撕算法部分将回归各类算法的基础题型,不再像机试那样出现花里胡哨的题干。
所以一定要再看看LeetCode上的经典题目。根据参加完面试的同学反馈和我在网上看到的面经,手撕出现的题目我会在题目后面进行标记考过几次。
另外,少部分面试官会让你重新做一遍机考没做出来的题目,所以机考时没做出来的题目可以再做一下。
栈
LC20. 有效的括号 (考过3次)
LC1047. 删除字符串中的所有相邻重复项 (考过2次)
LC150. 逆波兰表达式求值
LC394. 字符串解码 (考过2次)
LC71. 简化路径
LeetCode735、行星碰撞(考过1次)
单调栈
LC496. 下一个更大元素 I
LC739. 每日温度 (考过1次)
LC42. 接雨水
哈希集合&哈希表
LC349. 两个数组的交集
LC242. 有效的字母异位词
LC1. 两数之和 (考过1次)
LC219. 存在重复元素II
双指针
LC88. 合并两个有序数组 (考过2次)
LC26. 删除有序数组中的重复项 (考过1次)
LC27. 移除元素 (考过1次)
LC167. 两数之和II- 输入有序数组
LC11. 盛水最多的容器 (考过5次)
LC15. 三数之和 (考过2次)
LeetCode16、最接近的三数之和(考过1次)
LC75. 颜色分类
LeetCode 215、数组中的第 K 个最大元素(考过2次)
贪心
LC455. 分发饼干
LC134. 加油站
LC860. 柠檬水找零
LeetCode 179、最大数(考过2次)
滑动窗口
LC3. 无重复字符的最长子串 (考过3次)
LC209. 长度最小的子数组 (考过1次)
LeetCode 1052、爱生气的书店老板
二分查找
LeetCode 69、x 的平方根(考过2次)
LeetCode 35、搜索插入位置 (考过1次)
LeetCode 34、在排序数组中查找元素的第一个和最后一个位置
LeetCode875.爱吃香蕉的珂珂(考过1次)
DP
LC70. 爬楼梯
LC198. 打家劫舍
LC300. 最长递增子序列
LC1143. 最长公共子序列 (考过1次)
LeetCode 5、最长回文子串(考过2次)
LC494.目标和
LC322. 零钱兑换 (考过1次)
LC63. 不同路径 II(考过1次)
LC64. 最小路径和(考过1次)
LeetCode 53、最大子数组和(考过2次)
股票系列(考过2次)
BFS/DFS
LeetCode200、岛屿数量 (考过2次)
LC695. 岛屿的最大面积
LC547. 省份数量
LC207. 课程表(考过1次)
回溯
LeetCode 78、子集
LeetCode 46、全排列 (考过4次)
LeetCode 39、组合总和
LeetCode79、 单词搜索(考过2次)
LeetCode967、连续差相同的数字(考过1次)