随笔分类 -  leetcode

problems from leetcode
摘要:编写程序找第 n 个丑数。 丑数就是只包含质因子 2, 3, 5 的正整数。 例如, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 就是前10个丑数。 注意: 1. 1 一般也被当做丑数2. n不超过1690 思路:丑数是能完全被2,3,5整除的,比如12=2*2*3; 27=3*3 阅读全文
posted @ 2018-05-03 22:15 赖兴宇 阅读(326) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如:给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次遍历为: 阅读全文
posted @ 2018-05-02 00:14 赖兴宇 阅读(208) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 阅读全文
posted @ 2018-05-02 00:10 赖兴宇 阅读(557) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如:给定二叉树 [3,9,20,null,null,15,7], 返回锯齿形层次遍历如下: 阅读全文
posted @ 2018-05-02 00:03 赖兴宇 阅读(799) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回它的 后序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 迭代的实现:用栈的方式来实现 阅读全文
posted @ 2018-05-01 23:26 赖兴宇 阅读(539) 评论(0) 推荐(0)
摘要:翻转一棵二叉树。 转换为: 阅读全文
posted @ 2018-05-01 23:14 赖兴宇 阅读(370) 评论(0) 推荐(0)
摘要:根据一棵树的前序遍历与中序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 返回如下的二叉树: 阅读全文
posted @ 2018-05-01 22:18 赖兴宇 阅读(1515) 评论(0) 推荐(0)
摘要:根据一棵树的中序遍历与后序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 返回如下的二叉树: 后序遍历: 树的遍历都是用递归的思维来实现的 阅读全文
posted @ 2018-05-01 21:39 赖兴宇 阅读(505) 评论(0) 推荐(0)
摘要:编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 示例: 阅读全文
posted @ 2018-05-01 13:49 赖兴宇 阅读(348) 评论(0) 推荐(0)
摘要:给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。 示例: 用两次dfs 阅读全文
posted @ 2018-04-29 00:34 赖兴宇 阅读(425) 评论(0) 推荐(0)
摘要:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例:给定如下二叉树,以及目标和 sum = 22, 返回: 阅读全文
posted @ 2018-04-29 00:11 赖兴宇 阅读(932) 评论(0) 推荐(0)
摘要:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。 对 阅读全文
posted @ 2018-04-28 23:55 赖兴宇 阅读(388) 评论(0) 推荐(0)
摘要:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。 例如,从根到叶子节点路径 1->2->3 代表数字 123。 计算从根到叶子节点生成的所有数字之和。 说明: 叶子节点是指没有子节点的节点。 示例 1: 示例 2: 通过压栈的方式访问树的每一条路径,每 阅读全文
posted @ 2018-04-28 22:39 赖兴宇 阅读(964) 评论(0) 推荐(0)
摘要:计算给定二叉树的所有左叶子之和。 示例: 阅读全文
posted @ 2018-04-28 20:36 赖兴宇 阅读(209) 评论(0) 推荐(0)
摘要:给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 思路: 采用递归的思路 阅读全文
posted @ 2018-04-28 17:48 赖兴宇 阅读(185) 评论(0) 推荐(0)
摘要:给定一棵二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义: “对于有根树T的两个结点u、v,最近公共祖先表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。”(一个节点也可以是它自己的祖先) 例如, 节点 2 和 8的最近公共祖先是 6。再举个例子,节点 2 和 阅读全文
posted @ 2018-04-28 17:43 赖兴宇 阅读(618) 评论(0) 推荐(0)
摘要:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 阅读全文
posted @ 2018-04-26 12:21 赖兴宇 阅读(320) 评论(0) 推荐(0)
摘要:有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。 现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。 示例 1: 示例 2: 注意: 1 <= len(bits) <= 1000. bits[i] 总是0 阅读全文
posted @ 2018-04-26 12:19 赖兴宇 阅读(933) 评论(0) 推荐(0)
摘要:一个长度为 n 的整形数组nums,其中 n > 1,返回一个数组 output ,其中 output[i] 等于nums中除nums[i]以外所有元素的乘积。 不用除法 且在O(n)内解决这个问题。 例如,输入 [1,2,3,4],返回 [24,12,8,6]。 进阶:你可以在常数空间复杂度内解决 阅读全文
posted @ 2018-04-26 12:16 赖兴宇 阅读(1468) 评论(0) 推荐(0)
摘要:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 示例 2: 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以“引用”方 阅读全文
posted @ 2018-04-26 12:12 赖兴宇 阅读(272) 评论(0) 推荐(0)