- 博客(14)
- 收藏
- 关注
原创 二叉树的层序遍历 - 灵神视频总结
代码也很简单,就是需要熟悉deque的两个函数, popleft(), append(), 把节点移除和添加新的节点。代码也很简单,就是需要熟悉deque的两个函数, popleft(), append(), 把节点移除和添加新的节点。只要cur 不为空,就需要存储当前节点的值,并把下一层的节点存储在nxt中。只要cur 不为空,就需要存储当前节点的值,并把下一层的节点存储在nxt中。和上一题一样, 只不过是偶数层要反转一下,设置一个even变量即可,如果even = True, 直接反转数组。
2024-07-01 13:38:17
1657
原创 看到递归就晕?带你理解递归的本质!-- 灵神视频总结
递归: 就是从全局开始,不断解决小问题,更小的问题..以至于到原子问题,(递)然后从原子问题开始向上反馈结果,直到把最终的问题解决完,返回最终的结果。(归),计算机中使用了栈的数据结构来保存和计算。那叶子结点就是所有路径的节点数了。二叉树的结构和递归思维完全一致,左子树、右子树都是和整体二叉树是一个结构。二棵树最大的深度是指从根节点到最远叶子节点的最长路径上的节点数,递归很重要,希望大家也能深入理解,不要碰到不会的直接放弃了。前一种思路是把节点传下去,这种思路可以个数传下去。, 这就是高中学的数学归纳法。
2024-06-29 10:58:46
1083
原创 滑动窗口 模版 - 灵神视频总结
2️⃣ 滑动窗口, 声明两个指针,left, right, 从头开始遍历,如果sum(nums[left:right+1]) >= target , 更新结果,这时候需要不断缩小窗口,看是否能找到更小的子数组,把nums[left] 去掉, left+=1, 继续判断sum和target的关系,直到找到最小的窗口。从左到右开始遍历字符串, 不断更新,至少结果不满足条件为止,当不满条件了,就把左子串删除,直到满足条件为止。这题是由满足条件,到不满足条件,不满足条件的情况下,需要进行操作。
2024-06-25 14:36:53
1072
原创 盛最多水的容器 接雨水 - 灵神视频总结
根据题意,找到盛最多水的容器,实际上求的是两根柱子的距离 * min( 两个柱子), 假设选定两根柱子,容器的面试 = min(height1, height2) * (height2 - height1) ,对于短的柱子来说,这两根柱子的中间任何一根柱子组成的面积,都不可能比这个面积大,为什么?上面的例子来看 left_max 是从左到右遍历,如果遇到更大的,更新此值,后面即便是遇见小的,也是目前最大值, right_max 从右往左遍历,同理可得。
2024-06-25 00:30:42
480
原创 三数之和 - 灵神视频总结。
通过上一题可以知道,如果数组有序的话,我们就可以使用双向双指针,可以把O(n^2) 时间复杂度降低到O(n), 那么只要我们从第一个元素开始遍历,那么另外两个元素 可以转化为相加为0的问题。当找到了一组满足条件的解时,j 到 k 要遍历一遍,此时j已经+1了, 就如果nums[j] == nums[j-1] ,继续j+=1, 跳过这个k。[-4,-1,-1,0,1,2] 比如 nums[1] + num[3] + nums[4] = 0 , nums[2] + num[3] + nums[4] = 0。
2024-06-24 00:50:54
788
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人