拿下BAT+华为校招的200题LeetCode高频题库腾讯云开发者社区

下面是程序锅自己对网上发布的200道高频面试题进行分类之后的结果。这200道,程序锅大概花了7个月刷完了,并且差不多每道题都过了好几遍。

刷题方法的话,主要就是先过思路,之后再统一AC,参考的是「陈同学在搬砖」提供的刷题方法。PS:刷题为了过面试是一回事,但其实日常写写算法/数据结构题也是不错的,可以让常见的数据结构和算法可以潜移默化的影响你,进而影响日常编码,也算是一种锻炼吧。

刷题题解的话,程序锅这块暂时没有整理,但是有分类,下面每个大类表格中,程序锅将相似题解或者思想的题目用空行隔开了。

题目

718-最长重复子数组(最值不一定是末尾)

offer42/53-连续子数组的最大和/最大子序和(最值不一定是末尾)

152-乘积最大子数组(最值不一定是末尾)

300-最长递增子序列(最值不一定是末尾)

334-递增的三元子序列

221-最大正方形

5-最长回文子串

647-回文子串

72-编辑距离

343-剪绳子/整数拆分

91-解码方法

offer10-斐波那契数列

64-最小路径和

offer47-礼物的最大价值

62-不同路径

96-不同的二叉搜索树(树、动态规划)

95-不同的二叉搜索树2(树、动态规划)

121-买卖股票的最佳时机(数组、动态规划)/股票的最大利润(动态规划)

122-买卖股票的最佳时机2(贪心、数组)

198-打家劫舍(动态规划)

213-打家劫舍2(动态规划)

337-打家劫舍3(树、深度)

416-分割等和子集(01背包---使用一维dp数组的话:外层循环只能是遍历物品,内层循环是从大到小遍历背包容量;遍历背包的顺序是从大到小,因为倒序遍历确保是为了保证物品i只被放一次。二维dp数组的话:外层遍历物品,内层遍历背包容量和外层遍历背包容量,内层遍历物品都是可以的。都是从小到大。)

1049-最后一块石头的重量2(01背包---一维dp数组同上)

474-一和零(01背包---跟一维dp数组的方式类型,但是这里会有3层for循环)

494-目标和(01背包---一维dp数组同上)

518.零钱兑换II(完全背包,如果求组合数就是外层for循环遍历物品,内层for遍历背包(从小到大))

377.组合总和Ⅳ(完全背包,如果求排列数就是外层for遍历背包,内层for循环遍历物品)

offer10/70-青蛙跳台阶/爬楼梯(完全背包,排列数)

322-零钱兑换(完全背包)

279-完全平方数(完全背包)

139-单词拆分(完全背包)

(完全背包问题中,假如使用了一维dp数组,两个for循环嵌套的顺序是无所谓的,需要从小到大遍历)

338-比特位计数(位运算、动态规划)

55-跳跃游戏

455-分发饼干(田忌赛马的味道)

22-括号生成(回溯-深度遍历)

90-子集2

39-组合总和

40-组合总和2

46-全排列

79-单词搜索(深度)

200-岛屿数量(深度、广度)

offer04/240-二维数组中的查找/搜索二维矩阵2(将二维数组转换为二叉搜索树)

offer29/54-顺时针打印矩阵/螺旋矩阵(数组操作)

48-旋转图像(数组操作)

118-杨辉三角(数组)

717-1比特与2比特字符(数组遍历)

66-加一(数组操作)

56-合并区间(排序再遍历)

189-旋转数组(翻转整个数组+翻转前k个元素+翻转剩下的;环状替换:就是从头开始一个一个座位往后移k)

offer03-数组中重复的数字(计数、反复交换)

287-寻找重复数(跟“数组中重复的数字”类似,但是稍微有点区别)

448-找到所有数组中消失的数字(值对应到下标,再考察下标对应值的情况)

88-合并两个有序数组(双指针)

offer66/238-构建乘积数组/除自身以外数组的乘积(拆成两部分相乘的结果)

offer64-求1+2+…+n(递归+逻辑运算)

237-删除链表中的节点(基本操作)-1

203-移除链表元素(基本操作)-1

offer18-删除链表的节点(基本操作)-1

83-删除排序链表中的重复元素(基本操作)-1

offer06-从尾到头打印链表(基本操作)-1

206-反转链表(双指针、递归)-1

92-反转链表2(双指针、递归)-2

24-两两交换链表中的节点(双指针、递归)

25-K个一组翻转链表

offer22-链表中倒数第k个节点(双指针-间隔)

61-旋转链表(双指针-间隔)

19-删除链表的倒数第N个节点(双指针-间隔)

Offer25/21-合并两个排序的链表/合并两个有序链表(双指针)

23-合并K个升序链表(堆)

2-两数相加(链表)

86-分隔链表(双指针)

328-奇偶链表(双指针)

143-重排链表(双指针-快慢)

234-回文链表(双指针)

141-环形链表(双指针-快慢指针)

142-环形链表2(双指针-快慢指针,但有种相交链表的感觉)

offer52/160-两个链表的第一个公共节点/相交链表(双指针)

148-排序链表(排序、链表)

146-LRU缓存机制(设计)

225-用队列实现栈(两个队列,一个队列可(这个主要是因为队列两端都可操作))

232/offer09-栈实现队列/用两个栈实现队列(两个栈,一个栈不行(因为栈只能一端操作))

offer31/946-栈的压入、弹出序列(用一个栈模拟入栈和出栈过程,入栈则是按照入栈的顺序,当栈顶和出栈顺序一样则弹出)

150-逆波兰表达式求值(栈)

227-基本计算器2(栈)

739-每日温度(栈)

402-移掉K位数字(单调栈)

offer30/155-包含min函数的栈/最小栈(两个栈,一个栈就是纯栈,一个栈的栈顶存遇到的最小值)

offer59/239-滑动窗口的最大值(队列)

394-字符串解码(栈;深度)

581-最短无序连续子数组(选择排序的思想;排序;单调栈;对数组进行分段,找出左边界和右边界)

144-二叉树的前序遍历(递归、迭代、莫里斯)

94-二叉树的中序遍历(递归、迭代、莫里斯)

145-二叉树的后序遍历(递归、迭代、莫里斯)

offer32-从上到下打印二叉树(queue)

offer32-二叉树的层序遍历/从上到下打印二叉树2(queue)

offer32-二叉树的锯齿形层次遍历/从上到下打印二叉树3(queue)

114-二叉树展开为链表(莫里斯遍历、后序变体、前序的栈方式)

offer36-二叉搜索树与双向链表(中序遍历的框架)

538/1038-把二叉搜索树转换为累加树(中序变体)

199-二叉树的右视图(深度、广度)

offer34/113-路径总和2/二叉树中和为某一值的路径(DFS-先序---遍历框架)

offer27/226-二叉树的镜像/翻转二叉树(递归、迭代---遍历框架)

offer54-二叉搜索树的第K大节点(中序遍历的逆序的框架)

230-二叉搜索树中第K小的元素(类似与第K大的元素)

109-有序链表转换二叉搜索树(递归+快慢指针、中序遍历框架)

98-验证二叉搜索树(中序遍历的结果、递归的方式)

offer33-二叉搜索树的后序遍历序列(递归、单调栈)

offer07/105-重建二叉树/从前序与中序遍历序列构造二叉树(递归方式)

654-最大二叉树(递归,类似之前的重建二叉树)

108-将有序数组转换为二叉搜索树(采用递归的方式,跟最大的二叉树类似)

offer68/235-二叉搜索树的最近公共祖先(递归、迭代)

236-二叉树的最近公共祖先(递归*2、存储父节点)

offer26-树的子结构(递归)

offer55/104-二叉树的深度/二叉树的最大深度(递归、层序遍历)

543-二叉树的直径(递归+求树的高度)

offer55/110-平衡二叉树(两种递归:自底而上,自顶而下)

offer28/101-对称的二叉树(一种递归、一种迭代)/对称二叉树

617-合并二叉树(递归)

313-超级丑数(堆;动态规划)

378-有序矩阵中第K小的元素(堆,但是这个堆的用法其实就是排序,可以和合并k个排序链表总结到一块;二分查找)

347-前K个高频元素(堆、哈希表)

409-最长回文串(哈希表)

offer05-替换空格

offer58/151-翻转单词顺序/翻转字符串里的单词

offer48/3-最长不含重复字符的子字符串/无重复字符的最长子串(哈希表、滑动窗口)

187-重复的DNA序列(哈希表)

567-字符串的排列(哈希表、滑动窗口)

offer58-左旋转字符串

20-有效的括号(栈)

125-验证回文串(双指针)

344-反转字符串(双指针)

415-字符串相加

38-外观数列

767-重构字符串(堆、贪心算法、排序)

offer45-把数组排成最小的数

179-最大数

offer21-调整数组顺序使奇数位于偶数前面(快排思想)

offer40-最小的K个数(快排)

215-数组中的第K个最大元素(快排思想)

283-移动零(双指针-快排思想)

75-颜色分类(快排思想的双指针)

offer53/34-在排序数组中查找数字/在排序数组中查找元素的第一个和最后一个位置(先找左边界、再找右边界)

offer53-0~n-1中缺失的数字

162-寻找峰值

33-搜索旋转排序数组

offer11/154-旋转数组的最小数字

771-宝石与石头(哈希表)

575-分糖果(哈希表)

242-有效的字母异位词(排序;哈希表+字符串)

49-字母异位词分组(哈希表+字符串)

1-两数之和(哈希)

454-四数相加II(哈希表,与两数相加那些题有点类似)

560-和为K的子数组(两层循环;先算好连加的情况,之后使用双指针遍历;与“两数之和”类似的方式)

217-存在重复元素(哈希表)

763-划分字母区间(哈希+双指针)

349-两个数组的交集(哈希)

offer50-第一个只出现一次的字符(哈希表)

offer56-数组中数字出现的次数(位异或)

offer56-数组中数字出现的次数2/只出现一次的数字2(位运算)

136-只出现一次的数字

461-汉明距离(位运算)

offer15-二进制中1的个数(位运算)

371-两整数之和(位运算)

476-数字的补数(位运算)

26-删除排序数组中的重复项(双指针)

16-最接近的三数之和(先排序+三指针)

15-三数之和(先排序+单层循环+双指针)

18-四数之和(先排序+两层循环+双指针)

offer57-和为s的两个数字(对撞指针)

offer57-和为s的连续正数序列(滑动窗口)

11-盛最多水的容器(双指针)

7-整数反转(数学)

9-回文数(数学)

171-Excel表列序号(数学)

728-自除数(简单的循环)

326-3的幂(数学)

263-丑数(数学)

412-FizzBuzz(纯循环)

69-x的平方根(数学、二分查找)

258-各位相加(一种是循环;一种是找规律)

202-快乐数(判断循环问题就用双指针;哈希表)

292-Nim游戏(数学找规律)

offer61-扑克牌中的顺子(找规律)

31-下一个排列(就是如何找紧接着的下一个数字)

offer39/169-数组中出现次数超过一半的数字/多数元素(摩尔投票法、排序)

THE END
1.小学数学加减乘除混合运算练习(500题).pdf小学数学加减乘除混合运算练习(500题).pdf 6页VIP内容提供方:189***1015 大小:143.33 KB 字数:约1.26万字 发布时间:2024-10-11发布于河南 浏览人气:165 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)小学数学加减乘除混合运算练习(500题).pdf 关闭预览 想预览更多内https://m.book118.com/html/2024/1009/8055044103006133.shtm
2.海量题库,加减乘除,比较大小,涵盖学前和六年级数学题智能口算机有了这个智能口算机,再也不用费劲地给孩子出题了,海量题库,加减乘除,比较大小,涵盖学前和六年级数学题智能口算机 口算速算 加减法教学 数学 小学数学 2024-12-15 00:00 · 0次播放 发布于:江西省 拳击那点事 +订阅 +1 评论 全部 还没有人评论过,快来抢首评 写评论https://m.sohu.com/a/837546579_100114195
3.到三年级小学生逻辑训练口算器数学宝智能出题加减乘除心算口算器得力口算练习机训练机儿童智能学习机一到三年级小学生逻辑训练口算器数学宝智能出题加减乘除心算口算器 可爱粉口算训练机【300万+题库】图片、价格、品牌样样齐全!【京东正品行货,全国配送,心动不如行动,立即购买享受更多优惠哦!】https://item.jd.com/10077263694956.html
4.小学数学算术题库生成器可打印码农集市专业分享IT编程学习资源小学算术随机题库,加减乘除随意设定数值范围https://www.coder100.com/index/index/content/id/820576
5.python小学口算题库生成器PrimarySchoolMathematics孩子上小学一年级了,加减乘除的口算就要开始练习了,估计老师肯定会让家长出题,所以提前准备一下,利用Python开发了一套自动生成小学生口算题的小应用。而且今天是程序员节,撸200行代码庆祝一下。:) 为了让程序员老爹解放抄题的双手,让你拥有更多的时间去写代码而不用去手写几道口算题而伤神伤脑。所以有没有娃子的https://blog.csdn.net/weixin_28836989/article/details/113980208
6.一站到底题库及答案(20121122期)99、数学上常说的“四则运算”指的是哪四种算法? 加减乘除 100、“力拔山兮气盖世,时不利兮骓不逝”中的“骓”指的是哪种动物? 马 101、三国时期,刘备“手提三尺定山河”这里的“三尺”指的是什么? 剑 102、军事上的“飞毛腿”指的是哪种武器? 导弹 https://www.xuexila.com/zhishi/yizhandaodi/tiku/32871.html
7.小学数学三年级计算专项训练题每日一练123小学数学三年级计算专项训练题每日一练 2024-12-14 姓名:___座号:___情况:___ 1.(9 + 43) X =___ 2.(9 - 90) X =___ 3.(46 + 67) X =___ 4.(36 - 28) X =___ 5.(50 + 14) X =___ 6.(9 - 27) X =___ 7.(67 + 9) X =___ 8.(74 - 36) X =___ 9.https://wenku.baidu.com/view/479229d3551252d380eb6294dd88d0d232d43c64.html
8.我爱口算网52kousuan.xze.cn网站标题: 我爱口算网---小学加减乘除口算题库 网站网址: http://52kousuan.xze.cn 发布者IP:未记录发布者IP 网站标签: 口算、口算网、口算题、口算训练 网站内容描述(仅供参考):我爱口算网,提供小学加减乘除口算在线练习,快速提高小学生口算能力. http://www.fwol.cn/gotoweb.php?id=5082410
9.数学符号标志加减乘除vloggif图素材贴纸gif图片素材下载千库网为你提供数学符号标志加减乘除vloggif图素材贴纸gif下载,你关心的图片有数学符号标志加减乘除vloggif图素材贴纸高清GIF图、数学符号标志加减乘除vloggif图素材贴纸gif素材,下载高清gif图素材就来千库网!https://588ku.com/gif1/37723.html
10.小学数学口算生成器本资源为小学数学口算题出题工具,直接运行即可,包含多种出题方式,自动生成数学题目,可以打印,涵盖加减乘除常规的小学数学口算题,需要的朋友可以下载。 上传者:txp1993时间:2019-11-25 小学数学题库出题器.exe 小学数学计算训练最新版是专为小学生而开发的一款数学学习软件,小学数学计算训练最新版拥有口算、估算、竖式计https://www.iteye.com/resource/u012855622-6560981
11.在学习数学时我们通常先认识数字再学习加减乘除再学习混合运算这在学习数学时,我们通常先认识数字、再学习加减乘除,再学习混合运算。这体现了儿童个体身心发展的()。 A.顺序性B.阶段性C.不平衡性D.互补性 温馨提示:做题需要 沉着、冷静、细致、认真! 正确答案 点击免费查看答案 试题上传试题纠错 猜您对下面的试题感兴趣:点击查看更多与本题相关的试题 https://m.12tiku.com/newtiku/9999/22549671.html
12.初一加减乘除混合运算100道题,初一加减乘除混合运算题库包含100道初一加减乘除混合运算题目的题库,适合学生练习和提升数学计算能力。 ,理想股票技术论坛https://www.55188.com/search-%B3%F5%D2%BB%BC%D3%BC%F5%B3%CB%B3%FD%BB%EC%BA%CF%D4%CB%CB%E3100%B5%C0%CC%E2.html
13.拍照答题App排行榜应用宝拍照答题app推荐它还可以查英语单词,英语翻译,搜作文素材和范文,科学计算器计算数学,学习英语语法等。让学习生活有趣又简单。 【特色功能】●搜索答疑: 一键搜索查看核对作业答案解析。 ●英语翻译: 完形填空,阅读理解,拍照翻译成中文理解。 ●学习英语: 涵盖小学英语,初中英语、高中英语等语法解析。 ●科学计算器: 加减乘除、三角https://www.diandian.com/phb/1211/7-1.html
14.二次根式的化简试题答案解析,初中数学试题答案解析3二次根式的加减乘除混合运算,二次根式的化简试题答案解析,初中数学题目答案解析等数据查看分享https://www.ggtiku.com/wtk/list-b111121-s113201-l3.html
15.东风汽车公司笔试题目总结(精选14篇)一些国际著名企业的笔试难度相当大,考试科目有日语、数学、逻辑、英语等等,考试形式基本上是选择题。为了准备笔试,很多大学生刚上三年级就购买相关书籍“闭门4:用加减乘除使得给出的4个数字得出以下答案:24。 (一)5,6,7,8;(二)3,3,8,8 二:问答 1:用十种方法向和尚推销梳子,请自圆其说 https://www.360wenmi.com/f/filebh0i3dr7.html
16.国际分工中,发达国家生产力水平高经济实力强大,在整个世界经济大学职业搜题刷题APP 下载APP首页 课程 题库模板 题库创建教程 创建题库 登录 创建自己的小题S7-200系列PLC中对加减乘除等运算结果可以影响的标志位有 A. SM1.0 B. SM1.1 C. SM1.2 D这一现象说明他们学习数学所具有的特点是( )。 A. 具体的心理特点; B. 不能顺应的心理特点; https://www.shuashuati.com/ti/ae853d63fe8b48dca141f3a992fc27e6a2.html