- 博客(52)
- 收藏
- 关注
原创 力扣算法ing(47 / 100)
如果孩子为p,q返回节点如果节点为p或者q,那么就返回节点如果左孩子为p或者q返回左节点如果右孩子为p或者q返回右节点
2025-04-03 18:24:42
119
原创 蓝桥杯web备赛----js篇
JavaScript:基本上提纲里提到的都需要学并熟练,因为比赛题目里80%都是需要js来解决的,重点掌握Promise,Ajax,ES6新特性和功能.主要是要有解题思路需要大家多写代码.题目都是解决实际的一个功能如计算器,JSON生成器.就是一些功能需要你做出来,对我们的解题思路要求很高,因为比赛时间就4个小时,一个题目耗费的时间不能太长.
2025-04-02 14:58:16
650
1
原创 力扣算法ing(46 / 100)
不如直接对每个节点都进行遍历(深度遍历),看看也没有和为目标值的节点一个函数对树进行深度遍历,一个函数来判断和是否为目标值
2025-04-02 14:46:12
144
原创 力扣算法ing(45 / 100)
首先,我们利用前序遍历的第一个元素作为根节点,然后在中序遍历中找到这个根节点的位置,以此来确定左子树和右子树的范围。接着,我们递归地对左子树和右子树重复这个过程,直到所有的节点都被正确地放置在二叉树中的相应位置。在这个过程中,我们使用一个哈希映射来快速查找中序遍历中节点的位置,从而提高效率。构建二叉树的思路是通过前序遍历和中序遍历的特性来递归地确定每个节点的位置。最终,我们从整个树的视角开始递归,逐步构建出完整的二叉树。有点像分治算法,就是分左子树右子树创建根。,请构造二叉树并返回其根节点。
2025-04-01 10:08:04
178
原创 力扣算法ing(43 / 100)
大概思路(层次遍历):q.push放入节点,遍历条件(q的长度不为0),q.shift抛出节点,如果有孩子,孩子也要放进数组当中。大概思路(本题目):在层次遍历的条件下,记录每一层的len,遍历每一层,到最后一个元素(len === 0)的时候,抛出。
2025-03-30 10:59:31
269
原创 力扣算法ing(41 / 100)
虽然案例通过了,但是有很大的几率是碰到的哈哈哈啊哈,确实我的代码感觉就是缝缝补补起来的,子树的孩子大于或者小于根节点,但是对于自己的父母满足搜索二叉树。呜呜呜,一直觉得过了案例就离成功远了,花了一个多小时换来了答案错误,还是臣服于题解,这下明白了,二叉搜索树要使用中序遍历。为了验证一个二叉树是否是二叉搜索树,通常的方法是进行中序遍历,并检查遍历的结果是否是递增的。子树当中,顶点小于/大于根节点,如果子树是二叉搜素树,那么它就是二叉搜素树。,判断其是否是一个有效的二叉搜索树。二叉搜索树更多使用的是中根搜索。
2025-03-28 14:02:46
267
原创 力扣算法ing(40 / 100)
平衡二叉搜索树:是一种特殊的二叉搜索树,它除了满足二叉搜索树的基本性质(即左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值)之外,还要求任何节点的两个子树的高度差都不超过1。后面我发现对树进行中序遍历:-10 -3 0 9 5 — 和数组是相同的,我对数组进行中间数创造树得到的结果是。所以我们可以先让中间的当根节点,然后左子树也是中间的当根结点,右子树也是中间的当根节点,一直递归下去。先根遍历:将子树与根进行比较,如果是小于根的就要交换。
2025-03-27 09:11:00
294
原创 力扣算法ing(39 / 100)
先在队列中加入根结点。之后对于任意一个结点来说,在其出队列的时候,访问之。同时如果左孩子和右孩子有不为空的,入队列。
2025-03-26 13:27:16
113
原创 力扣算法ing(38 / 100)
总结:这道题是简单级别的题目,但是题目看错了让我在本题耗费了很多时间,问了一下ai,ai指出我的错误之后我又写了一段代码,但是答案的话有的正确有的错误,很让我苦恼,函数是递归的,返回的应该是最大深度,我之前是直接max+1,但这并不是最大深度,最大深度应该是左右子树的最大深度+1.
2025-03-25 09:14:17
160
原创 力扣算法ing(35 / 100)
能不能先根搜索,每次向下便增加层数.哈哈哈哈,现在已经进入树了,在经过昨天的那道题之后,对于树的先、中、后的遍历有了很大程度的理解,期待下一道题目!
2025-03-22 09:52:59
190
原创 力扣算法ing(33 / 100)
因为有两个值,所以我使用map容器,但是我最开始理解错题目了,以为值就是它的使用次数,完全没有想到使用了之后把它放在map的末尾,后面报错了问了一下ai才回到了正确道路。put:put函数中,如果容量是够用的,我们也要删除然后放在末尾,如果不够用我们就要删除第一个key,最后set。get:get函数中,如果有对应的键就要把键值对放在末尾(先删除原本的),返回对应的值,没有返回-1。
2025-03-20 10:04:18
319
原创 力扣算法ing(30 / 100)
删除指定的节点,给出头节点逆转链表,寻找第n个,删除不行不行,逆转录又要反转回去后面我想到了一个解决办法:利用数组计算总长度,然后再删除
2025-03-17 20:48:25
565
原创 力扣算法ing(28 / 100)
好吧因为满脑子都是连续跟踪 next 指针再次到达,则链表中存在环,一直在想怎么判断长度,但是它是一个环啊,一直在循环,根本找不到长度,所以看了一下官方的解答,用的快慢指针,真的是太牛啦!指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。双指针(快慢指针):一个指针快,一个指针慢,如果有环的话必然会在某个时间点相遇。
2025-03-15 15:03:12
291
原创 力扣算法ing(27 / 100)
我的思路:1 2 2 11 2 2 1一个链表和它的反转链表是相同的,不太会新建一个链表新建一个数组,将链表的值保存在数组当中,然后判断数组是不是反转数组判断数组是不是回文数组
2025-03-14 14:21:36
354
原创 力扣算法ing(26 / 100)
题解:其实链表比较方便的就是它的指针,这个很重要所以我们只要改变next指针的指向即可。一定要注意链表的特殊.
2025-03-13 10:22:55
289
原创 力扣算法ing(25 / 100)
经过分析可以发现的是,当pa开始遍历lista,pb遍历listb,遍历完的时候又开始遍历对方,总有一次经过这样的遍历也是会pa = pb 且此时就是相交的节点。
2025-03-12 14:31:56
338
原创 力扣算法ing(21 / 100)
答案错误:将某行或某列置为0后,后续的循环中可能会错误地认为这些新置为0的元素是原始的0,从而错误地修改其他行或列。正确思路:首先遍历矩阵,记录下所有0元素的位置。然后,根据记录的位置将相应的行和列置为0。
2025-03-08 14:58:55
297
原创 力扣算法ing(19 / 100)
给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请 **不要使用除法,**且在O(n)时间复杂度内完成此题。answer[i]我的思路:循环一次得到总乘积循环第二次得到最后的结果,准备用总的除数组!!!请 不要使用除法,且在 O(n) 时间复杂度内完成此题。行吧,我的思路错了双指针?不能直接修改数组的值!
2025-03-06 11:35:20
249
原创 力扣算法ing(13 / 100)
去掉首尾空格然后进行遍历,>string.length到了末尾。去掉首尾空格然后进行遍历,>string.length到了末尾
2025-03-02 20:27:27
206
原创 力扣算法ing(12 / 100)
当匹配的不等于需要匹配以及t的map有这个char的时候的时候,窗口扩大,如果说相等了两个指针也没有重合然后尝试收缩窗口以找到更小的满足条件的子字符串,i不断++,如果i对应的char在t当中,s对应的map就要-1,针也没有重合然后尝试收缩窗口以找到更小的满足条件的子字符串,i不断++,如果i对应的char在t当中,s对应的map就要-1,中需要的数量,则减少已匹配字符的种类数。中需要的数量,则减少已匹配字符的种类数。所有字符的子串,则返回空字符串。所有字符的最小子串。并且窗口中该字符的数量少于。
2025-03-01 20:44:05
314
原创 力扣算法ing(11 / 100)
问题的核心思想是利用一个双端队列(deque)来存储窗口内元素的索引,而不是元素的值。本来以为是一道很简单的题(虽然显示的是困难),写的第一次案例过了结果时间超时,后面看来一下大神的解析,那就总结一下吧~~~我们需要检查队列的首部元素是否超出了窗口的左边界。如果是,我们需要从队列的首部移除它。:一旦窗口形成(即至少包含k个元素),我们就记录队列的首部元素作为当前窗口的最大值。我的思路:滑动窗口,而且是定长的滑动窗口。为什么要存储索引呢?为什么要存储索引呢?
2025-02-28 11:01:14
653
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人