冲刺大厂之 Java 刷题总结

将该专栏的题目刷完,仔细学习整理,冲刺大厂没问题加油!!!!

一、数组

序号题目知识点
01关于数组你不得不知道的事数组方法总结
35搜索插入位置二分法总结
27移除元素双指针法
209长度最小的子数组 滑动窗口
59螺旋矩阵 II 模拟数组,关键确定边界条件

二、链表

序号题目知识点
01链表基础知识链表
203移除链表元素链表引入虚拟头结点
707设计链表虚拟头节点,链表基本操作
206翻转链表 双指针
19删除链表的倒数第 N 个结点 虚拟头结点,双指针
142环形链表 II双指针,快慢指针差为什么是1
25K 个一组翻转链表
141链表问题快慢指针、判断环、计算环的长度

三、哈希表

序号题目知识点
01关于哈希表,你不得不知道的事情哈希表基础知识
242有效的字母异位词数组哈希表
349两个数组的交集set 集合哈希表
202快乐数 set 集合哈希表
1两数之和 map 集合
454四数相加 II map 集合
383赎金信 数组哈希表
41缺失的第一个正数原地哈希

四、字符串

序号题目知识点
541反转字符串 II优化for循环,字符数组转字符串
剑指offer 05替换空格字符的比较
151翻转字符串 字符串相关API,集合翻转
剑指offer 58左旋转字符串 字符串的截取
05KMP 理论KMP
06实现 strStr()KMP具体实现
459重复的子字符串 KMP 应用

五、双指针法

序号题目知识点
01双指针应用在数组或者字符串或者链表
15三数之和双指针,数组转为列表Arrays.asList(1,2,3);
18四数之和双指针

六、栈与队列

序号题目知识点
01关于队列和栈你不得不知道的事栈和队列
232用栈实现队列
225用队列实现栈队列
20有效的括号
1047删除字符串中的所有相邻重复项 栈,栈转为字符串
150逆波兰表达式求值
239滑动窗口最大值 单调队列
347前 K 个高频元素 优先级队列
09表达式计算双栈计算

七、二叉树

力扣序号题目知识点
01关于二叉树,你不得不知道的事情二叉树
02原来二叉树中的递归这么简单 二叉树递归遍历
03原来二叉树中的非递归这么简单 !!!二叉树非递归遍历
04前后中序遍历统一写法上面的非递归已经够用
102&107&199&637&429层序遍历、右视图、层平均值、N叉树的层序遍历二叉树层序遍历,List 集合翻转
226翻转二叉树前序遍历,递归,非递归,层序遍历
101对称二叉树递归,迭代
104&559二叉树的最大深度 二叉树的最大深度,N叉树的最大深度
111二叉树的最小深度递归,迭代
222完全二叉树的节点个数递归,迭代
110平衡二叉树 递归
257二叉树的所有路径递归,迭代,回溯
100相同的树 递归
404左叶子之和递归,迭代
513找左下角的值迭代,递归
112&113终于搞明白了二叉树的递归函数是否需要返回值 !!!递归函数是否需要返回值
106&105构造二叉树也可以如此简单 !!!构造二叉树
654最大二叉树递归,处理数组下标
617合并两个二叉树递归
700二叉搜索树中的搜索二叉搜索树,递归,迭代
98验证二叉搜索树中序遍历,递归,迭代
530二叉搜索树的最小绝对差中序遍历,递归,迭代
501二叉搜索树中的众数中序遍历,递归
236 二叉树的最近公共祖先后序遍历处理逻辑
235二叉搜索树的最近公共祖先前序遍历处理逻辑
701二叉搜索树中的插入操作递归,迭代
450删除二叉搜索树中的节点递归,删除节点
669修剪二叉搜索树递归
108将有序数组转换为二叉搜索树递归,二叉搜索树特性
538把二叉搜索树转换为累加树递归,发现规律,前驱
补充二叉树的深度DFS,BFS

注解

递归函数如果需要遍历所有的路径,则不需要返回值,类似回溯的写法,如果找其中满足条件的一个路径即可,则需要返回值

八、回溯法

序号题目知识点
01关于回溯算法,你不得不知道的事情回溯法模板
77组合回溯,剪枝优化
216组合总和回溯,剪枝优化
17电话号码的字母组合 回溯,字符串 StringBuilder
39组合总和 I回溯,剪枝优化
40组合总和 II 回溯,标志数组
131分割回文串 回溯,切割问题
93复原 IP 地址回溯,切割,判断子字符串
78子集回溯
90子集II回溯,标志数组
491递增子序列回溯,去重,set 集合
46全排列回溯,标识数组
47全排列II标志数组,去重
332重新安排行程待解
51N 皇后引入二维数组记录存储的情况
37解数独二维递归

注解

如果是组合:backTracking(arr,i+1); 表示元素不可重复选取
如果是排列:backTracking(arr,i); 表示元素可以重复选取
如果要求不允许有重复的组合出现:可以设置 boolean 数组,表示每个数据是否已经被选用
比如1,1,7 只允许出现一个 1,7

九、贪心算法

序号题目知识点
01关于贪心算法,你不得不知道的事情贪心算法思路
455分发饼干贪心算法
376摆动序列贪心算法
53最大子序列和贪心算法
122买卖股票的最佳时机 II贪心算法,动态规划
55跳跃游戏 贪心算法
45跳跃游戏 II
1005K次取反后最大化的数组和贪心算法,数组自定义排序
134加油站贪心算法
678有效的括号字符串贪心
135分发糖果从左到右,从右到左
406根据身高重建队列两个维度
452用最少数量的箭引爆气球贪心,重叠数组
435无重叠的区间二维数组排序,贪心
763划分字母区间遍历,更新右边界
56合并区间左边界排序,遍历
714买卖股票的最佳时机含手续费贪心
968监控二叉树

十、动态规划

序号题目知识点
01关于动态规划,你不得不知道的事情动态规划思想
509斐波那契数列动态规划
剑指offer爬台阶动态规划
746最小花费爬楼梯动态规划
62不同的路径动态规划
63不同的路径 II动态规划
343整数拆分动态规划
96不同的二叉搜索树动态规划
09关于背包问题,你不得不知道的事情背包问题
416分割等和子集背包问题,
1049最后一块石头的重量 II背包问题
494求解目标和背包问题
474一和零背包问题
14关于完全背包,你不得不知道的事?完全背包问题
518零钱兑换II完全背包,组合问题
377组合总和 IV 完全背包,排列问题
17爬台阶 完全背包,排列问题
322零钱兑换完全背包,组合问题,最小数
279完全平方数完全背包,组合问题,最小数
139单词拆分完全背包
198打家劫舍常规动态规划
213打家劫舍II动态规划
337打家劫舍III
123买卖股票的最佳时机 III
309最佳股票时机含冷冻期
300最长递增子序列数组参数初始化赋值
674最长连续递增序列
718最长重复子数组处理二维数组赋初值的情况
1143&1035&392&583最长公共子序列&不相交的线&判断子序列&两个字符串的删除操作
72编辑距离
647回文子串
5最长回文子串子序列
516最长回文子序列

注解

完全背包:

  • 组合:元素之间不要求顺序,先遍历物品在遍历容量,如果每个物品可以多次使用则正序遍历容量
  • 排列:元素之间要求顺序,先遍历容量,再遍历物品

十一、单调队列

序号题目知识点
739每日测温递增栈
496下一个更大元素 I
其他单调栈取最大子序列
402移掉K位数字
316去除重复字母

十一、输入输出练习

序号题目知识点
01漂亮的字符串字符串,sc.hasNext()的作用
02牛星十进制通过率为0时,除了测试案例,还需要自己写个测试案例,发现问题所在
03

十二、补充目录

题号题目知识点
23合并K个升序链表 优先级队列,分而治之算法
32最长有效括号
42接雨水动态规划思想
49字母异位词分组 Steam流,字符串,map
56合并区间二维数组排序
76最小覆盖子串滑动窗口
79单词搜索 回溯思想,学会控制方向数组用法
84柱状图中最大的矩形 单调栈
64最小路径和 动态规划
200岛屿类问题 DFS
128最长连续序列 哈希
146LRU缓存~哈希链表,双向链表
148排序链表~归并排序
152乘积最大的子数组动态规划
210课程表拓扑排序,邻接表,有向无环图
621任务调度器贪心,优先级队列
581最短无序连续数组左右遍历
560和为k的子数组前缀合,哈希表
437路径总和III前缀合,哈希表
215数组中的第k个最大的元素优先级队列,减而治之
287寻找重复数快慢指针,二分法
438找到字符串中所有字母异位词滑动窗口+数组
221最大正方形求解动态规划
238除自身以外的数组 乘积 贪心,数组
208实现Trie(前缀树)
136,137,260异或题目
448找到所有数组中消失的数字原地数组
160相交链表快慢指针(快指针先走长度差),或者合并两个链表先让两者长度相同
338比特位计数奇偶性
其他链表求和栈、和进位
169多数元素摩尔投票
155最小栈辅助栈

十三、真题练习

序号题目时间
01K距离间隔重排字符串华为2面手撕代码
02分割数组最大值华为机试
03天平平衡华为机试
04返回单一数字字符串的个数华为机试
05不重叠数组最大和阿里机试
06牛星十进制阿里机试
07可能的排名百度机试
08完全二叉树最短路径问题百度机试
09链表中的最小字典序腾讯机试
10广告公司发放广告腾讯机试
11判断字符串是否相等腾讯机试
12做任务中兴比特比赛
13子串翻转美团机试
14序列旋转美团机试
15养精灵腾讯-正式
1601串腾讯-正式
1701序列腾讯-正式
18荷兰国旗问题小米-正式
19整除美团-正式
20交换美团-正式
21歌单美团-正式
22反转乘法表百度-正式
23实现计算器

十四、扩展目录

题号题目知识点
01最小公倍数和最大公约数最小公倍数,最大公约数
02HR 面准备
03Lazy 初始化(延迟初始化)
04 牛客网-剑指offer
05刷题知识点
06算法知识点
07(Java)树相关知识点学习
08(Java)栈相关知识点学习
09(Java)数组相关知识点学习
10(Java)字符串相关知识点学习
11(Java)数学相关知识点学习
12(Java)链表相关知识点学习
13一篇文章带你搞定Java 中的与、或、异或、移位运算
14(Java)刷题技巧
15动态规划
16一篇文章带你搞定牛客网的输入输出示例格式
17异或题目

对于数学性质的题目,首先写几项发现规律,笔试时可以写成代码注释的情况

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值