-
代码实现:
-
第三题:滑动窗口最大值
-
- 解题思路:
-
画图解析:
==============================================================================
描述:
计算给定二叉树的所有左叶子之和。
解题思路:
-
情况1: root为空 直接返回0;
-
情况2: 左子树只有一个节点,即左叶子节点,然后去遍历右子树找右子树的左叶子.
-
情况3: 左子树需遍历到左叶子,右子树需要遍历到左叶子.
画图解析:
代码实现:
class Solution {
public int sumOfLeftLeaves(TreeNode root) {
// root 为空 直接返回0
if(root == null) return 0;
// 左子树为左叶子 递归去找右子树的左叶子
if(root.left != null && root.left.left == null && root.left.right == null){
return root.left.val + sumOfLeftLeaves(root.right);
}
// 左子树不为左叶子,分别找左右子树的左叶子
return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);
}
}
LeetCode 215:数组中的第K个最大元素
描述:
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
解题思路:
-
使用优先级队列解题,即建一个大小为k的小堆.
-
遍历数组.将堆放满
-
堆放满后,每次需要和堆顶元素比较,如果堆顶元素比数组元素下,则出队,然后将数组元素入队.
-
最后返回队顶元素即可.
代码实现:
class Solution {
public int findKthLargest(int[] nums, int k) {
PriorityQueue MinHeap = new PriorityQueue<>(k,new Comparator(){
public int compare(Integer o1,Integer o2){
return o1 - o2;
}
}); //建小堆
for(int i = 0;i < nums.length ;i++){
//堆没满,先入队
if(MinHeap.size() < k){
MinHeap.offer(nums[i]);
}else{
//堆满后,进行比较,堆顶元素小于数组元素,就将数组元素入队
if(MinHeap.peek() < nums[i]){
MinHeap.poll();
MinHeap.offer(nums[i]);
}
}
}
//返回堆顶元素即可.
return MinHeap.peek();
}
}
LeetCode 239: 滑动窗口最大值
描述:
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
返回滑动窗口中的最大值。
解题思路:
-
可以使用优先级队列,建立大堆.存储的是nums数组的内容,和对应的下标
-
创建一个数组,大小为
nums.length - k + 1
,用来存储每次滑动窗口获得的最大值. -
遍历nums数组,首先存放k个数据存入到堆中,这样构成一个大小为k的滑动窗口,然后将第一次滑动窗口中的最大数据放入数组中(即堆顶元素).
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/1ca43bbb41db37f53db28dc029b2fa2c.jpeg)
总结
在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
…(img-zBufrsib-1713462261682)]
[外链图片转存中…(img-ddA1Qis4-1713462261684)]
[外链图片转存中…(img-nLErHbZN-1713462261687)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!