随笔分类 -  LeetCode

摘要:给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 示例 2: 示例 3: 说明:你可以假设 s 和 t 阅读全文
posted @ 2018-08-03 12:56 Booker808 阅读(498) 评论(0) 推荐(0)
摘要:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 阅读全文
posted @ 2018-07-29 22:52 Booker808 阅读(492) 评论(0) 推荐(0)
摘要:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意:不能使用代码库中的排序函数来解决这道题。 示例: 进阶: 一个直观的解决方案是使用计数排序的两 阅读全文
posted @ 2018-07-29 20:06 Booker808 阅读(190) 评论(0) 推荐(0)
摘要:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 例如, 给定数组 [1,1,1,2,2,3] , 和 k = 2,返回 [1,2]。 注意: 你可以假设给定的 k 总是合理的,1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(n log n) , n 是数组的 阅读全文
posted @ 2018-06-27 11:48 Booker808 阅读(256) 评论(0) 推荐(0)
摘要:给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 注意:两个节点之间的路径长度由它们之间的边数表示。 示例 1: 输入: 输出: 示例 2: 输入: 输出: 注意: 给定的二叉树不超过10000个结点。 树的高度不超过1000。 思路:我们可以通 阅读全文
posted @ 2018-06-22 23:11 Booker808 阅读(358) 评论(0) 推荐(0)
摘要:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例:给定的有序链表: [-10, -3, 0, 5, 9], 平衡二叉查找树:简称平衡二叉树。由前苏联的数学家Adelse-Vels 阅读全文
posted @ 2018-06-15 15:52 Booker808 阅读(198) 评论(0) 推荐(0)
摘要:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 示例 2: 阅读全文
posted @ 2018-06-10 09:23 Booker808 阅读(286) 评论(0) 推荐(0)
摘要:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 示例 2: 阅读全文
posted @ 2018-06-10 09:20 Booker808 阅读(132) 评论(0) 推荐(0)
摘要:给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不需要经过根节点。 示例 1: 示例 2: 阅读全文
posted @ 2018-06-03 22:42 Booker808 阅读(203) 评论(0) 推荐(0)
摘要:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 代码如下: 阅读全文
posted @ 2018-05-28 19:32 Booker808 阅读(171) 评论(0) 推荐(0)
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 因为链表的节点只有next指针,并且我们的题目要求只能扫描一次就完成删除,所以我们不能简单的创建一个数组来解决问题,所以我们可以这样来: (1)删除倒 阅读全文
posted @ 2018-05-26 12:01 Booker808 阅读(126) 评论(0) 推荐(0)
摘要:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes为节点总数。 示例: 说明: 应当保持奇数节点和偶数节点的 阅读全文
posted @ 2018-05-26 11:54 Booker808 阅读(213) 评论(0) 推荐(0)
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 该题目的要求是只需要扫描一次就可以实现,那么我们就不可能去创建一个数组来解决该问题,因为把链表元素全部放进数组就要扫描一次,而把删除后的数组放入链表又 阅读全文
posted @ 2018-05-24 22:16 Booker808 阅读(191) 评论(0) 推荐(0)
摘要:给定一个二叉树 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 说明: 你只能使用额外常数空间。 使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间 阅读全文
posted @ 2018-05-21 19:55 Booker808 阅读(206) 评论(0) 推荐(0)
摘要:给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 非递归代码如下所示: 递归代码如下: 阅读全文
posted @ 2018-05-18 23:12 Booker808 阅读(172) 评论(0) 推荐(0)
摘要:待写 阅读全文
posted @ 2018-05-01 23:31 Booker808 阅读(169) 评论(0) 推荐(0)