随笔分类 -  leetCode题解

摘要:给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。 示例 2: 给定二叉树 阅读全文
posted @ 2019-06-09 23:06 Cyrus丶 阅读(337) 评论(0) 推荐(0)
摘要:给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。 例如,给定一个 3叉树 : 返回其层序遍历: 说明: 阅读全文
posted @ 2019-06-09 20:14 Cyrus丶 阅读(323) 评论(0) 推荐(0)
摘要:给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 例如,给定一个 3叉树 : 我们应返回其最大深度,3。 说明: 树的深度不会超过 1000。树的节点总不会超过 5000。 题解:遍历每一颗子树即可 阅读全文
posted @ 2019-06-09 19:36 Cyrus丶 阅读(205) 评论(0) 推荐(0)
摘要:有效括号字符串为空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。 如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们 阅读全文
posted @ 2019-06-02 23:05 Cyrus丶 阅读(275) 评论(0) 推荐(0)
摘要:设计一个找到数据流中第 K 大元素的类(class)。注意是排序后的第 K 大元素,不是第 K 个不同的元素。 你的 KthLargest 类需要一个同时接收整数 k 和整数数组 nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第 K 大的元素。 阅读全文
posted @ 2019-06-02 22:29 Cyrus丶 阅读(267) 评论(0) 推荐(0)
摘要:有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新 阅读全文
posted @ 2019-06-02 21:41 Cyrus丶 阅读(718) 评论(0) 推荐(0)
摘要:请判断一个链表是否为回文链表。 示例 1: 示例 2: 阅读全文
posted @ 2019-06-02 18:53 Cyrus丶 阅读(208) 评论(0) 推荐(0)
摘要:删除链表中等于给定值 val 的所有节点。 示例: 阅读全文
posted @ 2019-06-02 18:39 Cyrus丶 阅读(99) 评论(0) 推荐(0)
摘要:编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 示例 2: 示例 3: 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O (n) 时间复杂度,且仅用 O 阅读全文
posted @ 2019-06-02 18:28 Cyrus丶 阅读(225) 评论(0) 推荐(0)
摘要:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 示例 2: 解法二:由于已经给定是排序链表,那么只要判断当前节点和下一个节点是否相同就行了 阅读全文
posted @ 2019-06-02 17:26 Cyrus丶 阅读(180) 评论(0) 推荐(0)
摘要:给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数组作为答案。 示例: 提示: 解法:创建两个数组,遍历一遍数组,一个存放奇数,一个存放偶数,再遍历一遍 阅读全文
posted @ 2019-06-01 22:09 Cyrus丶 阅读(289) 评论(0) 推荐(0)
摘要:给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。 你可以按任意顺序返回答案。 示例 1: 示例 2: 提示: 思路:使用二位数组构造每个字符串 阅读全文
posted @ 2019-06-01 20:58 Cyrus丶 阅读(153) 评论(0) 推荐(0)
摘要:给定长度为 2n 的数组,你的任务是将这些数分成 n 对,例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min (ai, bi) 总和最大。 示例 1: 输入: [1,4,3,2] 输出: 4 解释: n 等于 2, 最大总和为 4 = min( 阅读全文
posted @ 2019-06-01 20:13 Cyrus丶 阅读(226) 评论(0) 推荐(0)
摘要:给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。 水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。 反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果 阅读全文
posted @ 2019-06-01 19:26 Cyrus丶 阅读(317) 评论(0) 推荐(0)