自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_43776408的博客

我喜欢当程序员,或许这只是我的兴趣而不是我的工作

  • 博客(908)
  • 收藏
  • 关注

原创 leetcode:找树左下角的值

【代码】leetcode:找树左下角的值。

2024-09-23 15:57:49 124

原创 leetcode:连续的子数组和

不知道这个定理怎么用,这个题无法高效解决。但是要用到一个定理,同余定理。这题说他难吧,真不难。

2024-09-23 15:24:45 179

原创 leetcode:和为K的子数组

不过你要记住一点,前缀和不一定非要用数组。

2024-09-19 16:45:21 146

原创 leetcode:路径总和 III

判断到达该节点后有没有等于target的,遍历数组,逐次相减判断。就是前缀和,每到一个节点,计算该节点到开始那个节点的和。这题我刚开始写,没有完全通过,通过了109/116个。比如上述图,到了左边第一个3节点,此时前缀和数组。你的思路都是对的,运行时间也是打败绝大多数。差不多是这样的,10,15,18。因为你在代码里加了个break。思路啥的基本正确,细节出问题。你知道你为啥做不出来吗?让他弄完,别中途退出来了。就把那个break去了。

2024-09-19 16:06:18 148

原创 leetcode:找到二叉树中最近的右侧节点

找到该节点记录下其层,然后下次遍历到该层就是结果。当然也可以前中后遍历。

2024-09-09 10:21:08 145

原创 leetcode:寻找所有的独生节点

【代码】leetcode:寻找所有的独生节点。

2024-09-09 10:11:08 124

原创 leetcode:统计二叉树中的好节点的数目

和答案思维一样的,但没考虑到把上一个最大值当作参数。但考虑到节点的左最大值和右最大值不能共通。我的思路就是用一个遍历记录沿途最大值。所以我用了一个变量记录了上一个最大值。

2024-09-08 11:30:08 153

原创 leetcide:祖父节点值为偶数的节点和

就是遍历过程中遇到偶数值节点时,然后累加他的孙子节点即可,就这么简单。不过有个问题,偶数值节点还不一定有子节点,更别说有孙子节点了。

2024-09-07 23:12:24 158

原创 leetcode:路径总和 IV

所以定义一个15长数组,通过计算得到每一个节点值,将这些值根据哈希表放到数组对应位置。比如215这个数,求得21,查哈希表21-索引1位置处,所以把5这个数放到索引1处。然后根据这个数组构造二叉树。因为题目说了,深度小于5。然后遍历这颗二叉树即可。

2024-09-06 16:32:48 201

原创 leetcode:二叉树的垂序遍历

一个是可以通过类来存每个节点信息,一个是排序技巧。这个题是先把所有节点的坐标求出来存起来。最后挨个存,思路确实简单。思维上很像,都是标记法。这个题和垂直遍历很像。

2024-09-05 22:07:02 218

原创 leetcode:翻转二叉树以匹配先序遍历

针对左节点就行了,左节点不同换,右节点只要不同,直接false。思路啥的和答案很接近。

2024-09-05 20:56:19 184

原创 leetcode:在二叉树中增加一行

只是针对某一层的,结束后后面没必要在遍历了。所以直接在if里return即可。

2024-09-03 22:48:06 175

原创 leetcode:左叶子之和

【代码】leetcode:左叶子之和。

2024-09-03 18:03:24 166

原创 leetcode:最接近的二叉搜索树值

看一下主函数有没有参数要传给子函数的,有的话,可能就需要2个参数。你如果遇到traverse到底是一个参数还是2个参数。traverse建议还是void类型好。

2024-09-03 17:40:19 119

原创 leetcode:二叉树中的伪回文路径

【代码】leetcode:二叉树中的伪回文路径。

2024-09-02 23:13:55 196

原创 leetcode:从根到叶的二进制数之和

注释写好了,看注释就行。

2024-09-02 22:46:23 202

原创 leetcode:从叶节点开始的最小字符串

得用一个变量记录下遍历的过程。还是得大胆想,大胆写。

2024-09-02 22:15:14 193

原创 leetcode:二叉树最长连续序列

那好,题目还要判断长度,那是不是也要考虑传一下呢?你如果你只传一个root.left你觉得可以不?不行,因为你不知道父节点和该子节点连续的。不知道子函数参数有什么?

2024-09-02 14:10:25 251

原创 leetcode:二叉树最大宽度

【代码】leetcode:二叉树最大宽度。

2024-09-02 13:53:04 167

原创 leetcode:二叉树的右视图

这题用BFS比较好想,就是取每一层末尾或开头的值。你想的是给子函数传入root.right。都已经加够了,自然不会再加的。两种方法都是右边先开始遍历的。DFS的话,你不要想复杂了。而且还解决了你想的覆盖问题。这样就不会遍历左边的了。可以新建一个高度变量。

2024-09-01 14:38:32 243

原创 leetcode:求根节点到叶节点数字之和

以这个为例,到124,计算完之后,要返回到12,你懂吧,减去4除以10。遍历的时候就依次加,然后判断即可。就是下面代码递归的下面的一行。

2024-09-01 13:56:36 121

原创 leetcode:二叉树的所有路径

返回条件就是root为null,或者root左右节点为null。建议使用java自带api string.join。他是将不同字符串中间用你指定的符号连接起来。其他情况就符合了,添加起来。就是返回字符串里面有->和之前有一道题很类似。

2024-09-01 11:51:32 212

原创 leetcode:从中序与后序遍历序列构造二叉树

和前序中序遍历构造一样的,只不过顺序反了而已。

2024-08-27 13:46:16 188

原创 leetcode:从前序与中序遍历序列构造二叉树

然后再中序遍历中找1,找到了,数一下1的左边多少个数字,有5个。2,5,4,6,7表示左边的,3,8,9表示右边的。那再前序遍历向后数5位,就把前序遍历分成2部分了。前序遍历第一个就是根节点,是1。这个题建议联想最大二叉树那道题。是在那道题模板上改的。

2024-08-27 13:35:03 193

原创 leetcode:最大二叉树

求最大值这个好像只能暴力,逐一判断求。还是以前一样,不要想复杂。

2024-08-27 12:51:45 216

原创 leetcode:二叉树展开为链表

即,要在原来TreeNode上改。然后把2原来右边拼接到新的右边上。我这里是另外的,所以运行不通过。这题关键是函数返回是void。原来节点不变基础上改。

2024-08-21 14:09:23 138

原创 leetcode:填充每个节点的下一个右侧节点指针

那么不同父节点的之间连接不上。如果只是单纯的遍历连接节点。

2024-08-21 13:24:33 210

原创 leetcode:每日温度

用单调栈做,套用单调栈经典模板。

2024-08-21 12:49:49 144

原创 leetcode:黑名单中的随机数

那1难道映射到4位置处?不行,所以要判断你映射处的位置是不是黑名单数。还有一个问题,如果本身黑名单数就在末尾,那自然不用映射。这样随机到了1,那么他的映射是4,则随机数是4。随机到了2,那不在黑名单不用查表,直接就是2。比如0,1,2,3,4,黑名单是1,3。比如还是上面5个数,黑名单是1,3,4。自然,3和4不用映射,本来就在数组末尾。建一个哈希表,只需要把1映射到4处。就是把黑名单数放到数组末尾。

2024-08-20 14:14:30 222

原创 leetcode:O(1)时间插入、删除和获取随机元素

这题需要哈希表配合数组一起来。牵扯到随机性那就得数组了。删除的话,交换到末尾删除。比如下图,你要删除元素7。先获取7元素的索引,为3。然后将末尾元素索引改为3。

2024-08-20 13:55:54 184

原创 leetcode:拼车

建议纸上画一下,最后求得的数组只要有元素超过capi,一律return false。如果某一站上去一万人,下一站右下去一万人,那正负为0,不也可以?意思就是好多个车站点,每个站点可能都要上下人。但车的容量是有限的,请判断中间是否会超载。这个题你如果想的比较仔细,可能会觉得不对。把所有站点看成一个数组。

2024-08-13 14:23:18 178

原创 leetcode:航班预订统计

上述图1所有数加起来即可。

2024-08-13 14:02:54 219

原创 leetcode:区间加法

里面有2个方法,一个是给区间内所有值加减,一个是由差分数组递推回原来数组返回。差分数组适用于频繁的对数组某个区间值进行加减。这个题先构造差分数组类。

2024-08-13 13:54:10 145

原创 leetcode:二维区域和检索 -矩阵不可变

先求出数组,然后根据数组来。

2024-08-12 17:45:28 108

原创 leetcode:区域和检索 - 数组不可变

sumRange的参数是[0, 2], [2, 5], [0, 5]输入的是[-2, 0, 3, -5, 2, -1]数组。这个题不能把上述中间代码写到sumRange。虽然时间复杂度不高,但你写进去了。时间复杂度就是指数型的了。

2024-08-12 15:15:12 126

原创 leetcode:会议室

【代码】leetcode:会议室。

2024-08-12 14:00:01 118

原创 leetcode:易混淆数

最后二者相加,比较是否和原来相等即可。我的思路是双指针,一个开头一个结尾。有的话,根据后面求出前半部分对称数。哈希表存的数都有自己的对称数。根据前面求出后半部分对称数。没有的话直接false。

2024-08-09 14:47:07 170

原创 leetcode:中心对称数

就是要观察,找出规律。

2024-08-09 13:20:30 140

原创 leetcode:最短单词距离 II

再加上shortest操作次数,次数×每次遍历时间,可能就超了。然后后面的求最短距离,每次调用时,由于用了哈希表,速度快很多。所以我的方法没错,但是时间有点长,每次都要遍历一遍数组。哈希表键是字符串,值是列表,存的是键单词对应的索引。找到单词后,直接双指针遍历列表里的计算最短距离即可。这样的话只用第一次,就把所有单词都加到了哈希表里。什么是shortest操作次数不大于5000。用哈希表的话,次数×时间,不会超时。和之前最短单词距离代码一样的。很遗憾12个例子通过了11个。不是很理解何为设计?

2024-08-08 14:17:25 122

原创 leetcode:最短单词距离 III

虽然是2个for循环,但第一个for循环找到第一次word1位置。相同情况,我也是只遍历了一遍数组。下一个for循环接着上次继续。

2024-08-08 13:39:01 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除