
力扣刷题
文章平均质量分 56
日常刷题记录
ThePaK
慢慢来
展开
-
剑指 Offer 34. 二叉树中和为某一值的路径
当路径为根节点到叶节点形成的路径且各节点值的和等于目标值 sum 时,将此路径加入结果列表。给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22。路径记录: 当 root 为叶节点且路径和等于目标值 ,则将此路径 path 加入 res。输出:[[5,4,11,2],[5,8,4,5]]原创 2023-05-11 13:43:34 · 434 阅读 · 1 评论 -
剑指 Offer 28. 对称的二叉树
判断两节点 L.leftL.left 和 R.rightR.right 是否对称,即 isSame(L.left, R.right);判断两节点 L.rightL.right 和 R.leftR.left 是否对称,即 isSame(L.right, R.left);返回值: 两对节点都对称时,才是对称树,因此用与逻辑符 && 连接。输入:root = [1,2,2,null,3,null,3]例如,二叉树 [1,2,2,3,4,4,3] 是对称的。输入:root = [1,2,2,3,4,4,3]原创 2023-05-08 16:39:31 · 616 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
根据上面两个定义可知,根节点是数组postorder的最后一个节点,如果此数组代表的是二叉搜索树,则postorder的剩下值中必会左半部分为会小于根节点的值,右半部分大于根节点的值。此步骤使用递归来实现。遍历后序遍历的 [l,r] 区间元素,寻找第一个大于根节点的节点,索引记为 m。此时,可划分出左子树区间 [l, m−1] 、右子树区间 [m,r−1] 、根节点索引 r。根节点的左子树中的值均小于根节点的值,右子树的值均大于根节点的值。输入: [1,6,3,2,5]输入: [1,3,2,6,5]原创 2023-05-10 13:34:16 · 547 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
若树 B 是树 A 的子结构,则子结构的根节点可能为树 A 的任意一个节点。树 B 是 树 A 右子树的子结构,对应 isSubStructure(A.right, B)。树 B 是 树 A 左子树的子结构,对应 isSubStructure(A.left, B);判断树 A 中以 An为根节点的子树是否包含树 B.(对应函数 isSub(A, B))判断 A 和 B 的左子节点是否相等,即 isSub(A.left, B.left);以节点 A 为根节点的子树包含树 B,对应 isSub(A, B);原创 2023-05-08 14:16:53 · 417 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
接下来根据找到的中序遍历的左子树的个数,找到在前序遍历中的左子树。其中前序遍历中的左子树是左子树的前序遍历;而中序遍历中的左子树是左子树的中序遍历。根据前序遍历和中序遍历的特点,前序遍历的第一个节点就是根,在中序遍历中找到根的位置,左边是根的左子树,右边是根的右子树。,依次遍历中序结构,将值和位置对应到哈希表中。递归结束条件:子树个数为0。输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。获取中序遍历根节点位置的方法是创建一个。原创 2023-05-07 12:19:39 · 101 阅读 · 0 评论 -
94. 二叉树的中序遍历
递归和迭代实现原创 2023-05-07 11:38:31 · 169 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
动态规划求解原创 2023-05-05 17:22:06 · 544 阅读 · 0 评论 -
剑指 Offer 53 - I. 在排序数组中查找数字 I
统计一个数字在排序数组中出现的次数。原创 2023-04-12 20:47:31 · 108 阅读 · 0 评论 -
剑指 Offer 35. 复杂链表的复制
当创建好新链表后,对两个链表同时循环,由于两个链表的任意节点位置是相同的,故当循环到初始链表某节点的任意节点时,此时新链表循环到的地方也是某节点的任意节点。插入节点后找每个节点的任意节点,每个新插入的节点的任意节点都为前一个节点的任意节点的下一个。最后再将拼接后的链表拆成两个链表。输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]官方思路:不新建链表,而是在原链表中插入节点,如下图。原创 2023-03-30 14:52:52 · 135 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
循环条件:每次获取除当前节点外后面所有节点倒序后的数组,然后再在数组中加入当前节点。输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。先将链表中数据依次压栈,然后再依次从栈中取出数据到数组中。终止条件:head==None时返回空列表。原创 2023-03-28 17:27:07 · 111 阅读 · 0 评论 -
剑指 Offer 30. 包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。创建两个栈,分别为数据栈 A 和辅助栈 B,栈 A 用于存储所有元素,栈 B 中存储栈 A 中所有。--> 返回 -3.minStack.min();--> 返回 -2.,即 min() 函数只需返回栈 B 的栈顶元素即可。(包含重复元素) 的元素,则。原创 2023-03-28 11:01:13 · 327 阅读 · 0 评论 -
1615. 最大网络秩
两座不同城市构成的 城市对 的 网络秩 定义为:与这两座城市 直接 相连的道路总数。[i][j] ,使用一个规模为n × n的数组进行统计,存在记为true,不存在记为false;网络秩是与这两座城市直接相连的道路总数,因此首先要分别得到城市i和城市j相连的道路数,记为。整个基础设施网络的 最大网络秩 是所有不同城市对中的 最大网络秩。统计任意两个城市之间是否存在相连道路,枚举所有城市对,计算网络秩。[i][j], 枚举所有城市对,找到最大网络秩。统计每个城市的直接相连道路数,使用一个数组。原创 2023-03-15 22:32:45 · 382 阅读 · 0 评论 -
2470. 最小公倍数为 K 的子数组数目
2470. 最小公倍数为 K 的子数组数目C++实现原创 2023-03-15 11:16:08 · 398 阅读 · 0 评论 -
面试题 08.06. 汉诺塔问题 C++实现
递归原创 2023-02-01 21:14:33 · 352 阅读 · 0 评论 -
面试题 02.06. 回文链表 C语言实现
中间结点+逆置原创 2022-11-30 20:11:42 · 235 阅读 · 0 评论 -
面试题 02.04. 分割链表 C语言实现
创建两个链表原创 2022-11-30 17:46:39 · 531 阅读 · 0 评论 -
力扣 206. 反转链表 C语言实现
循环和递归原创 2022-11-30 16:30:33 · 622 阅读 · 0 评论 -
力扣 876. 链表的中间结点
快慢指针原创 2022-11-30 16:08:49 · 214 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
使用快慢指针原创 2022-11-30 16:02:35 · 170 阅读 · 0 评论 -
力扣 203. 移除链表元素 C语言实现
力扣 203. 移除链表元素 遍历和递归方法原创 2022-11-27 22:51:31 · 551 阅读 · 0 评论 -
力扣 21. 合并两个有序链表 C语言实现
力扣 21. 合并两个有序链表 遍历和递归原创 2022-11-27 22:36:32 · 794 阅读 · 0 评论 -
力扣 141. 环形链表 C语言实现
力扣 141. 环形链表 哈希表和快慢指针原创 2022-11-27 01:39:51 · 335 阅读 · 0 评论 -
力扣 242. 有效的字母异位词 C语言实现
力扣 242. 有效的字母异位词 创建两个数组原创 2022-11-26 01:25:21 · 364 阅读 · 0 评论 -
力扣 36. 有效的数独 C语言实现
力扣 36. 有效的数独 创建三个数组记录元素出现的次数原创 2022-11-26 01:12:18 · 954 阅读 · 0 评论 -
力扣 383. 赎金信 C语言实现
力扣 383. 赎金信 构建两个和一个含有26个元素的数组原创 2022-11-25 17:19:10 · 332 阅读 · 0 评论 -
力扣 387. 字符串中的第一个唯一字符 C语言实现
力扣 387. 字符串中的第一个唯一字符 哈希表和数组原创 2022-11-25 16:24:58 · 595 阅读 · 0 评论 -
力扣 73. 矩阵置零 C语言实现
力扣 73. 矩阵置零 哈希表和设置标识列原创 2022-11-24 20:39:37 · 1093 阅读 · 0 评论 -
力扣 118. 杨辉三角 C语言实现
力扣 118. 杨辉三角 二维数组的创建原创 2022-11-24 11:24:33 · 680 阅读 · 0 评论 -
力扣 566. 重塑矩阵 C语言实现
力扣 566. 重塑矩阵 C语言实现 -- 二维数组的使用原创 2022-11-24 10:56:28 · 500 阅读 · 0 评论 -
力扣 121. 买卖股票的最佳时机 C语言实现
力扣 121. 买卖股票的最佳时机 动态规划详解原创 2022-11-22 20:50:05 · 362 阅读 · 0 评论 -
力扣 350. 两个数组的交集 II C语言实现
力扣 350. 两个数组的交集 C语言实现原创 2022-11-22 16:58:41 · 188 阅读 · 0 评论 -
力扣88. 合并两个有序数组 C语言求解
力扣88. 合并两个有序数组 C语言求解原创 2022-11-21 20:00:50 · 187 阅读 · 0 评论 -
力扣1. 两数之和
力扣1. 两数之和 暴力解法和哈希表原创 2022-11-21 16:10:04 · 129 阅读 · 0 评论 -
力扣 53. 最大子数组和 --- C语言求解
力扣53:最大子数组和 --- 动态规划和分治法原创 2022-11-21 12:16:50 · 737 阅读 · 0 评论 -
力扣 217. 存在重复元素 --- C语言求解
力扣 217. 存在重复元素 --- C语言求解原创 2022-11-20 22:09:14 · 575 阅读 · 0 评论