
数据结构和算法
文章平均质量分 93
以js实现的力扣题目,还有详解
hyyyyy!
1.曾婉拒过快手
2.多次登上csdn必吃榜
3.我的内容很有趣你也来看看吧
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《又是二叉树?递归与回溯的经典应用》
这道题的递归思想是这样的:我们分别递归左右子树的最大深度,并且在递归过程中不断取他们的最大值,最后加上根节点就能得到最大深度了。分别求出其左右子树的高度,然后如果差值小于等于1,则返回当前二叉树的高度,否则返回-1,表示已经不是二叉平衡树了。这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。递归的过程中依然是遇到空节点了为终止,返回0,表示当前节点为根节点的树高度为0。参数:当前传入节点。给定二叉树 [1,2,2,3,3,null,null,4,4]原创 2025-03-13 21:43:00 · 755 阅读 · 0 评论 -
《二叉树层次遍历十连击:用十道题目彻底征服 BFS》
二叉树的层序遍历(也称为广度优先遍历,BFS)是一种按层次遍历树节点的方法。:首先将根节点放入队列中。:当队列不为空时,执行以下操作:取出队列中的第一个节点,并访问它。将该节点的左子节点和右子节点(如果存在)依次放入队列中。:直到队列为空,遍历结束。只要我们掌握基础知识,我们就,只需要增加一些逻辑。来吧!打爆它们!!!原创 2025-03-07 14:11:02 · 833 阅读 · 0 评论 -
《一起走进遍历二叉树的奇妙之旅:递归、迭代与统一迭代法全详解》
二叉树的遍历是指按照某种顺序访问树中的所有节点。和。深度优先遍历是从根节点出发,沿着一条路径尽可能深地访问节点,直到到达叶子节点,然后回溯到上一个节点继续遍历。:根节点 → 左子树 → 右子树:复制树、表达式树的前缀表示。:左子树 → 根节点 → 右子树:二叉搜索树的中序遍历结果是有序的。:左子树 → 右子树 → 根节点:删除树、表达式树的后缀表示。广度优先遍历是按层次从上到下、从左到右访问节点。通常使用队列实现。:从上到下、从左到右逐层访问节点。:求树的深度、按层打印节点。原创 2025-03-05 22:10:03 · 625 阅读 · 0 评论 -
《JavaScript解题秘籍:力扣队列与栈的高效解题策略》
输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]这道题简直是为了栈定制的一道题,我们的思路就是先把字符串里的元素压入栈中,在这里我们设置一个map组,只让他压入朝向一边的括号。所以就是用栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。原创 2025-03-03 20:19:50 · 844 阅读 · 0 评论 -
《JavaScript × 字符串:LeetCode字符串里的奇思妙想》
等下一个天亮,去上次牵手赏花那里散步好吗”——《下一个天亮》原创 2025-03-02 19:15:32 · 844 阅读 · 0 评论 -
《JavaScript x 哈希表:LeetCode高频题通关秘籍!》
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True;不是,则返回 False。输入:19输出:true解释:如何思考这道题呢?我觉得:当他不出现重复的数,就会变成一。一旦出现了重复的数,那么他就是陷入无限循环。,我们这时就要想到可以使用哈希表的思想来解决。原创 2025-03-01 20:30:05 · 1379 阅读 · 0 评论 -
链表专题(交换链表中的节点,链表相交,环形链表)(JS实现)
如果来判断链表相交呢,我们采用对尾的方式,你将两个链表的尾部放在一起,每个链表给一个指针,然后求出差值。其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。如果链表无环,则返回 null。原创 2025-02-28 18:40:23 · 865 阅读 · 0 评论 -
力扣螺旋矩阵详解--js实现
如果n为偶数的话中间值是无法自己填入的,得我们手动填入。完整代码在下面:/***/let i,j;i=startx;j=starty;for(;j<n-offet;j++){for(;i<n-offet;i++){for(;j>starty;j--){for(;i>startx;starty++;offet++;return ans。原创 2025-02-27 15:52:28 · 324 阅读 · 1 评论