算法-数据结构
邵政道
这个作者很懒,什么都没留下…
展开
-
[leetcode日记]101.对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:进阶:你可以运用递归和迭代两种方法解决这个问题吗?来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/symmetric-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。分析如果一个树的左子树与右子树镜像对称,那么这个树是对称的。原创 2020-05-31 09:04:23 · 192 阅读 · 0 评论 -
[leetcode日记]84.柱状图中的最大矩形
题目给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3] 输出: 10来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-rectangle-in-h原创 2020-05-30 09:44:40 · 207 阅读 · 0 评论 -
算法分析与设计exp3 Prim&Kruskal C语言代码
这是中科大2020年春《算法分析与设计》的课程实验3。实验题目助教给出补充,所给树的节点一定是20,也就是说默认输入输出都是一个20*20的矩阵。我已经在GitHub上传我的代码和测试样例,这是链接。https://github.com/Xixo99/exp3_Prim-Kruskal具体算法原理我就不解释了,因为我觉得我表达能力肯定没有那些写书的人好哈哈。代码/******************* * 描述:最小生成树 * 分别用Prim算法和Kruskal算法实现 *原创 2020-05-18 11:19:33 · 357 阅读 · 0 评论 -
[leetcode日记]25.K个一组翻转链表
题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而原创 2020-05-16 09:19:03 · 141 阅读 · 0 评论 -
[leetcode日记]102:二叉树层序遍历
题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7] ]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-ord原创 2020-05-13 14:55:21 · 122 阅读 · 0 评论 -
[leetcode日记]236.二叉树的最近公共祖先
题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出: 3 解释: 节点 5和原创 2020-05-10 21:19:11 · 131 阅读 · 0 评论 -
[leetcode日记]572.另一个子树
题目给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1: 给定的树 s: 3 / \ 4 5 / \ 1 2 给定的树 t: 4 / \ 1 2 返回 true,因为 t 与 s 的一个子树...原创 2020-05-07 17:28:17 · 112 阅读 · 0 评论 -
[leetcode日记]98.验证二叉搜索树
目录题目分析方法一代码:方法一运行结果方法二代码方法二运行结果尾巴题目给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:[2,1,3]输出: true示例 2:输入为: [5,1,4,null,null,3,6]。...原创 2020-05-05 11:13:06 · 194 阅读 · 0 评论 -
[leetcode日记]155.最小栈
题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() ——检索栈中的最小元素。示例:输入: [“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出: [null,null,null,null原创 2020-05-12 19:32:10 · 114 阅读 · 0 评论