leetcode-hot100精选
文章平均质量分 51
leetcode-hot100精选,初衷是10天内刷完
消失的dk
永远不要低估一颗总冠军的心
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode hot100 21-26
注意:lastnode(每轮开始翻转的前的一个结点)每次的位置都需要更新,该位置就是lastnode的下一个位置,需要保存。循环条件: 有一个不是空节点,或者还有进位,就继续迭代。思路:先找到中间值,然后翻转后面的链表,然后一一比较。找到中间的结点分开,递归调用两边,然后两边merge。需要添加哨兵,为了left=1的情况。法一:归并排序(自顶向下)法二:归并排序(自底向上)原创 2025-01-28 17:09:25 · 194 阅读 · 0 评论 -
Leetcode Hot100 26-30
一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。put操作:若Node存在,则修改Node.value的值,若不存在,则添加,判断链表容量是否要删除最后的Node,然后添加到链表最前面。LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的。get操作:根据key取出Node,若Node存在,并将Node放在链表最前面。,选择最近最久未使用的页面予以淘汰。原创 2025-01-29 15:31:33 · 215 阅读 · 0 评论 -
Leetcode Hot100 31-35
答:虽然题目是 int 类型,但开始递归的时候,left 需要比所有节点值都要小,right 需要比所有节点值都要大,如果节点值刚好是 int 的最小值/最大值,就没有这样的 left 和 right 了,所以需要用 long 类型。先递归右子树,再递归左子树,传入一个depth,然后第一个depth==size,就加入。问:为什么 Java 等语言要用 long 类型?法二:层序遍历+最后一个元素加入list。1.需要右边子树的所有节点都大于目前结点。正确的做法:设置上下限。原创 2025-01-31 23:13:06 · 225 阅读 · 0 评论 -
从前序与中序(后序与中序)遍历序列构造二叉树
前序的第一个元素为根节点,因为中序为左根右,所以通过中序的根节点3,知道左节点有1个,右节点有3个,通过左右节点的个数大小,再切割前序。1.使用HashMap来保存中序遍历数组对于元素的下标。2.通过传入数组索引参数下标来实现复制数组的操作。细节:1.索引统一好左闭右开区间。前序 3 9 20 15 7。中序 9 3 15 20 7。初始版本(复制数组)原创 2025-02-01 12:43:02 · 574 阅读 · 0 评论 -
Leetcode hot100 6-10
比较头尾,若i+j大于target,则j--,若i+j大于target,则i++若三数之和,则i遍历数组,j=i+1,k=n-1,作两数之和操作。原创 2025-01-22 15:00:49 · 248 阅读 · 0 评论 -
Leetcode hot100 16-20
然后 R 更新为 R=R∗nums[i],其中变量 R 表示的就是索引右侧数字的乘积。1.用一个长为 4 的方向数组 DIRS=[(0,1),(1,0),(0,−1),(−1,0)] 分别表示右下左上 4 个方向。具体来看,当矩阵大小n为偶数时,取前n/2行、前n/2列的元素为起始点;当矩阵大小n为奇数时,取前n/2行、前(n+1)/2列的元素为起始点。两种情况合二为一,把 di 更新为 (di+1)mod4。思路:把上下左右方向存入一个二维数组中,若遇到边界或者碰到已经遍历过的,则换一个方向。原创 2025-01-24 15:05:53 · 344 阅读 · 0 评论 -
Leetcode hot100 11-15
2.逻辑:右边大于左边的则合并,不然添加。3.数据结构使用List结构。细节:1.按照左端点排序。原创 2025-01-24 00:29:58 · 139 阅读 · 0 评论 -
Leetcode hot100 1-5
有思路,大致思路(判断num-1是否在set里)是对的,但是num-1是否在set应该是外层判断条件,用来剪枝,跳过大部分情况,里面判断条件是num+1是否在set里。思路总结:首先都存在Hashset中,访问一个数字,看是否是序列头(前面num-1是否存在在Hashset中),然后再通过num+1计算连续长度。原创 2025-01-21 16:20:34 · 257 阅读 · 0 评论
分享