![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 68
Fern_v
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营 | 二叉树part04
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum。判断该树中是否存在 根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和 targetSum。否则,返回 false。给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。叶子节点 是指没有子节点的节点。叶子节点 是指没有子节点的节点。原创 2024-07-26 16:26:10 · 276 阅读 · 0 评论 -
代码随想录算法训练营 | 二叉树part03
除了最底层节点没填满外,其余每层节点数都达到最大值,并且最后一层的节点都集中在该层最左边的若干位置;给定一个二叉树,判断它是否是 平衡二叉树(该树所有节点的左右子树的深度相差不超过 1 )完全二叉树中的节点的左右子树,要么都是满二叉树,要么一颗是满二叉树,一颗是完全二叉树;:遍历二叉树来计算节点个数;代码同二叉树的前序/中序/后序/层序遍历。原创 2024-07-26 16:25:16 · 106 阅读 · 0 评论 -
代码随想录算法训练营 | 二叉树part02
叶子节点所在的层数即为它的深度,层序遍历可以保证最先访问到的叶子节点深度最小,即整棵二叉树的最小深度。:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始):指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)同104计算根节点的最小高度,注意左右子字节一方为空的情况。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。计算二叉树的最大深度即计算二叉树的层数;说明:叶子节点是指没有子节点的节点。根节点的高度就是二叉树的最大深度;原创 2024-07-19 21:58:42 · 304 阅读 · 0 评论 -
代码随想录算法训练营 | 二叉树part01
叶子节点所在的层数即为它的深度,层序遍历可以保证最先访问到的叶子节点深度最小,即整棵二叉树的最小深度。102变形,这里只需要将判断左右子节点,改为判断存储子节点的children数组即可。和116一样的方法,层序遍历,链接当前层的节点。前序遍历:根结点 —> 左子树 —> 右子树。后序遍历:左子树 —> 右子树 —> 根结点。中序遍历:左子树—> 根结点 —> 右子树。计算二叉树的最大深度即计算二叉树的层数;找到层序遍历的每一层的最后一个节点。层次遍历:只需按层次遍历即可。原创 2024-07-19 16:44:04 · 322 阅读 · 0 评论 -
代码随想录算法训练营 | 栈与队列part02
当数据类型不是基本数据类型,而是自定义的数据类型时,就不能使用greater或less的比较方式了,而需要自定义比较方式;有两种自定义比较方式的方法,分别是:1.重载运算符 重载”<”;2.重写仿函数。原创 2024-07-13 21:35:16 · 299 阅读 · 0 评论 -
代码随想录算法训练营 | 栈与队列part01
你所使用的语言也许不支持队列。你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。pop元素时,将_que1的头部的元素(除了最后一个元素外),重新添加到队尾。原创 2024-07-12 23:13:07 · 477 阅读 · 0 评论 -
代码随想录算法训练营第六天| 字符串part02
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。第二行为字符串 s,代表需要旋转的字符串。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。给你一个字符串 s ,请你反转字符串中 单词 的顺序。原创 2024-07-11 21:38:00 · 372 阅读 · 0 评论 -
代码随想录算法训练营第六天| 字符串part01
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumbercnumber”。给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。如果剩余字符少于 k 个,则将剩余字符全部反转。原创 2024-07-10 20:06:04 · 239 阅读 · 0 评论 -
代码随想录算法训练营第六天| 哈希表part02
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < n。你返回所有和为 0 且不重复的三元组。原创 2024-07-10 20:01:37 · 320 阅读 · 0 评论 -
代码随想录算法训练营第六天| 哈希表part01
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。输入:nums1 = [1,2,2,1], nums2 = [2,2]对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程 结果为 1,那么这个数就是快乐数。原创 2024-07-09 23:20:34 · 318 阅读 · 0 评论 -
代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II
此时,fast 指针已经走完了环的 n 圈,因此它走过的总距离为 a+n(b+c)+b=a+(n+1)b+nc (c是环减去b的长度)。输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。如果链表无环,则返回 null。原创 2024-07-08 22:41:50 · 503 阅读 · 1 评论 -
代码随想录算法训练营第三天| 203.移除链表元素、707.设计链表、206.反转链表
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。3,pre的next指向新节点(p1) head的next也指向了p1 4,pre断开与head的链接 与p1关联起来。2,将pre指针与head关联起来 这样pre的next指向哪里 head的next也指向哪里。反转时,对于头节点,要让其指向nullptr,其他节点指向它的前一个节点;给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2024-07-08 01:17:22 · 308 阅读 · 0 评论 -
代码随想录算法训练营第二天| 977.有序数组的平方、209.长度最小的子数组 、59.螺旋矩阵II
数组可以分为负数和非负数两部分,负数部分平方后为非递增,非负数部分平方后为非递减,整体成一个U型,我们选择异向双指针,从两端开始比较,取较大部分逆序放入新数组;给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。如果不存在符合条件的子数组,返回 0。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。输出:[[1,2,3],[8,9,4],[7,6,5]]原创 2024-07-08 01:15:45 · 386 阅读 · 0 评论 -
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。这里就是slow表示 不等于val 的数组下标,fast 去遍历原来的数组,如果nums[fast]不等于val,满足条件,就更新到nums[slow],并更新slow;解释:你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。输入:nums = [0,1,2,2,3,0,4,2], val = 2。原创 2024-07-03 19:13:45 · 901 阅读 · 0 评论