LeetCode
木瓜强
这个作者很懒,什么都没留下…
展开
-
LeetCode 最大子序和
题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例input: [-2, 1, -3, 4, -1, 2, 1, -5, 4]output: 6解法动态规划 ( Python )class Solution: def maxSubArray(self, nums) -> int: tmp...原创 2019-03-14 10:16:57 · 170 阅读 · 0 评论 -
LeetCode 单值二叉树
题目 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例input: [1,1,1,1,1,null,1] 1 / \ 1 1 / \ \ 1 1 1output: true提示:给定树的节点数范围是 [1, 100]。也就是没有r...原创 2019-04-16 18:27:04 · 196 阅读 · 0 评论 -
LeetCode N叉树的前序遍历
题目 给定一个 N 叉树,返回其节点值的前序遍历。示例给定一个三叉树: 1 / | \ 3 2 4 / \ 5 6返回其前序遍历:[1,3,5,6,2,4]解法递归实现( Python )"""# Definition for a Node.class Node: def __init__(self, val, children)...原创 2019-04-13 19:26:14 · 286 阅读 · 0 评论 -
LeetCode N叉树的后序遍历
题目 给定一个 N 叉树,返回其节点值的后序遍历。示例给定一个三叉树: 1 / | \ 3 2 4 / \ 5 6返回其后序遍历: [5,6,3,2,4,1]解法递归( Python )class Solution: def __init__(self): self.res = [] def ...原创 2019-04-14 18:59:58 · 640 阅读 · 0 评论 -
LeetCode 二叉搜索树中的搜索
题目 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。示例给定搜索值2和一棵二叉搜索树: 4 / \ 2 7 / \ 1 3你应该返回如下子树: 2 / \ 1 3在上...原创 2019-04-14 20:17:11 · 242 阅读 · 0 评论 -
LeetCode 修剪二叉搜索树
题目 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例输入: 1 / \ 0 2 L = 1 R = 2输出: 1 \ 2解法一、递归 (Py...原创 2019-04-22 20:17:23 · 168 阅读 · 0 评论 -
LeetCode N叉树的层序遍历
题目 给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。示例 例如,给定一个 3叉树 :解法一、广度优先搜索( Python )class Solution: def levelOrder(self, root: 'Node') -> List[List[int]]: if root == None: ...原创 2019-04-23 15:54:20 · 303 阅读 · 0 评论 -
LeetCode 二叉树的层平均值
题目 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.示例输入: 3 / \ 9 20 / \ 15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].注意:节点值的范围在32位有符号整数范围内。所以就不用考虑小数了。解法一...原创 2019-04-23 19:29:00 · 190 阅读 · 0 评论 -
LeetCode 递增顺序查找树
题目 给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。示例输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9输出:[1,...原创 2019-04-19 16:41:39 · 182 阅读 · 0 评论 -
LeetCode 翻转二叉树
题目 翻转一棵二叉树。简单来说就是将二叉树每一个节点的左右子节点进行交换。示例input: 4 / \ 2 7 / \ / \ 1 3 6 9output: 4 / \ 7 2 / \ / \ 9 6 3 1解法深度优先遍...原创 2019-04-12 18:36:13 · 317 阅读 · 0 评论 -
LeetCode N叉树的最大深度
题目 给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。示例给定一个三叉树: 1 / | \ 3 2 4 / \ 5 6返回其最大深度 3。说明:树的深度不会超过 1000。树的节点总不会超过 5000。解法一、DFS递归 ( Python )class Solution: ...原创 2019-04-15 18:40:40 · 374 阅读 · 0 评论 -
LeetCode 二叉树的最大深度
题目 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 注: 叶子节点是指没有子节点的节点。示例 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 解法深度优先遍历-递归实现...原创 2019-04-11 19:28:45 · 158 阅读 · 0 评论 -
LeetCode 只出现一次的数字
题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例input: [2, 2, 1]output: 1input: [4,1,2,1,2]output: 4解法Set ( Python )class Solution: def singleNumber(self, nums: List[int]) -&am原创 2019-03-09 10:00:18 · 160 阅读 · 0 评论 -
LeetCode 无重复字符的最长子串
无重复字符的最长子串题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例input: "abcabcbb"output: 3input: "bbbbb"output: 1input: "pwwkew&quot原创 2019-03-08 10:54:30 · 189 阅读 · 0 评论 -
LeetCode 爬楼梯
题目 假设你正在爬楼梯。需要 n (正整数) 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例input: 2output: 2解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 input: 3output: 3解释:有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1...原创 2019-03-14 10:26:14 · 184 阅读 · 0 评论 -
LeetCode 买卖股票的最佳时机
题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6 - 1 = 5 。 ...原创 2019-03-19 15:21:36 · 145 阅读 · 0 评论 -
LeetCode 快乐数
题目 编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例input: 19output: true解释: 1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2...原创 2019-03-15 10:47:04 · 341 阅读 · 0 评论 -
LeetCode 使用最小花费爬楼梯
题目 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1...原创 2019-03-18 09:40:18 · 263 阅读 · 0 评论 -
LeetCode 打家劫舍
题目 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 ...原创 2019-03-19 10:12:39 · 137 阅读 · 0 评论 -
LeetCode 合并两棵二叉树
题目 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例输入: Tree 1 Tree 2 ...原创 2019-04-11 14:25:40 · 517 阅读 · 0 评论 -
LeetCode 叶子相似的树
题目 请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。解法一、深度优先搜索-先序...原创 2019-04-19 19:33:59 · 140 阅读 · 0 评论