摘要:原题(Medium): 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: ro 阅读全文
posted @ 2019-11-07 21:08 羽园原华 阅读 (8) 评论 (0) 编辑
摘要:准确来讲,heap并不属于STL容器,但它是其中一个容器priority queue必不可少的一部分。 阅读全文
posted @ 2019-11-07 20:09 羽园原华 阅读 (60) 评论 (0) 编辑
摘要:原题(Medium): 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 思路:动态规划 如果某一个点 [i][j] 的值为1,我们不妨可以假设它是一个正方形的右下角,且另起一个数组dp,记录该点所在的正方形的边长,即使有可能它周围点都是0,但它自己本身也是一个边 阅读全文
posted @ 2019-11-04 10:38 羽园原华 阅读 (20) 评论 (0) 编辑
摘要:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 阅读全文
posted @ 2019-11-03 17:11 羽园原华 阅读 (10) 评论 (0) 编辑
摘要:Stack stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口,元素的新增、删除、最顶端访问都在该出口进行,没有其他位置和方法可以存取stack的元素。换言之,stack不允许有遍历行为。 在学习了deque之后,我们知道了deque是一个双向开口的结 阅读全文
posted @ 2019-11-03 16:36 羽园原华 阅读 (12) 评论 (0) 编辑
摘要:Deque是一种双向开口的连续线性空间。 阅读全文
posted @ 2019-11-01 16:19 羽园原华 阅读 (16) 评论 (0) 编辑
摘要:实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。 阅读全文
posted @ 2019-10-31 22:54 羽园原华 阅读 (15) 评论 (0) 编辑
摘要:原题(Medium): 现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习? 说明: 输入的先决条件是由边 阅读全文
posted @ 2019-10-31 15:08 羽园原华 阅读 (18) 评论 (0) 编辑
摘要:我们在学习序列式容器时,我们经常会遇到这三个函数:uninitialized_copy、uninitialized_fill、uninitialized_fill_n。在那时我们只是仅仅知道这些函数的功能,至于它们是如何实现的,我们并没有深究。在这节,我们花点时间摘下这几个函数的面具,看看它们不为人 阅读全文
posted @ 2019-10-29 13:05 羽园原华 阅读 (17) 评论 (0) 编辑
摘要:原题(Medium): 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 思路:递归 这题类型跟我们之前做过的一题单词搜索类似。所以我在看到这题之后,就想到了可以用与之 阅读全文
posted @ 2019-10-29 08:51 羽园原华 阅读 (19) 评论 (0) 编辑