
LeetCode题解
文章平均质量分 51
jrrhjww
这个作者很懒,什么都没留下…
展开
-
LeetCode 739. 每日温度
LeetCode 739. 每日温度一、题目详情原题链接:739. 每日温度请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [原创 2021-07-12 18:00:33 · 60 阅读 · 0 评论 -
LeetCode 647. 回文子串
LeetCode 647. 回文子串一、题目详情原题链接:647. 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"提示:输入的字符串长度不会超过 1000 。二、动态规划原创 2021-07-12 16:43:54 · 72 阅读 · 0 评论 -
LeetCode 621. 任务调度器
LeetCode 621. 任务调度器一、题目详情原题链接:621. 任务调度器给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间原创 2021-07-12 15:28:28 · 136 阅读 · 1 评论 -
LeetCode 581. 最短无序连续子数组
LeetCode 581. 最短无序连续子数组一、题目详情原题链接:581. 最短无序连续子数组给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。示例 1:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。示例 2:输入:nums = [1,2,3,4]输出:0原创 2021-07-12 11:09:38 · 67 阅读 · 0 评论 -
LeetCode 560. 和为 K 的子数组
LeetCode 560. 和为 K 的子数组一、题目详情原题链接:560. 和为K的子数组给定一个整数数组和一个整数 **k,**你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。二、暴力枚举法public class原创 2021-07-09 18:02:00 · 72 阅读 · 0 评论 -
LeetCode 538. 把二叉搜索树转换为累加树
LeetCode 538. 把二叉搜索树转换为累加树一、题目详情原题链接:538. 把二叉搜索树转换为累加树给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例 1:输入:[4,1,6,0,2,5,7原创 2021-07-09 15:35:28 · 65 阅读 · 0 评论 -
LeetCode 494. 目标和
LeetCode 494. 目标和一、题目详情原题链接:494. 目标和给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例 1:输入:nums = [1,1,1,1,1],原创 2021-07-09 10:53:25 · 59 阅读 · 0 评论 -
LeetCode 438. 找出字符串所有字母异位词
LeetCode 438. 找出字符串所有字母异位词一、题目详情原题链接:438. 找到字符串中所有字母异位词给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例 1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等于 0 的原创 2021-07-08 18:17:24 · 258 阅读 · 0 评论 -
LeetCode 437. 路径总和 III
LeetCode 437. 路径总和 III一、题目详情原题链接;437. 路径总和 III给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10原创 2021-07-08 16:40:48 · 63 阅读 · 0 评论 -
LeetCode 416. 分割等和子集
LeetCode 416. 分割等和子集一、题目详情原题链接:416. 分割等和子集给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。提示:1 <= nums.length &原创 2021-07-08 11:08:53 · 94 阅读 · 0 评论 -
LeetCode 322. 零钱兑换
LeetCode 322. 零钱兑换一、题目详情给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1], am原创 2021-07-07 18:39:54 · 73 阅读 · 0 评论 -
LeetCode 406. 根据身高重建队列
LeetCode 406. 根据身高重建队列一、题目详情假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。示例原创 2021-07-07 17:24:58 · 129 阅读 · 0 评论 -
LeetCode 399. 除法求值
LeetCode 399. 除法求值一、题目详情原题链接:399. 除法求值给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ?原创 2021-07-07 15:25:26 · 130 阅读 · 0 评论 -
LeetCode 394. 字符串解码
LeetCode 394. 字符串解码一、题目详情原题链接:394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:原创 2021-07-07 11:28:55 · 99 阅读 · 2 评论 -
LeetCode 347. 前K个高频元素
LeetCode 347. 前K个高频元素一、题目详情原题链接:347. 前 K 个高频元素给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 10^5k 的取值范围是 [1, 数组中不相同的元素的个数]原创 2021-07-06 17:09:13 · 74 阅读 · 0 评论 -
LeetCode 337. 打家劫舍 III
LeetCode 337. 打家劫舍 III一、题目详情在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3原创 2021-07-06 15:26:54 · 70 阅读 · 1 评论 -
LeetCode 309. 最佳买卖股票时机含冷冻期
LeetCode 309. 最佳买卖股票时机含冷冻期一、题目详情原题链接:309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第i个元素代表了第i天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期原创 2021-07-05 16:05:52 · 64 阅读 · 0 评论 -
LeetCode 300. 最长递增子序列
LeetCode 300. 最长递增子序列一、题目详情原题链接:300. 最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0原创 2021-07-05 11:14:19 · 66 阅读 · 1 评论 -
LeetCode 287. 寻找重复数
LeetCode 287. 寻找重复数一、题目详情原题链接:287. 寻找重复数给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。你设计的解决方案必须不修改数组 nums 且只用常量级 O(1) 的额外空间。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3示例 3:输原创 2021-07-02 18:29:12 · 112 阅读 · 1 评论 -
LeetCode 279. 完全平方数
LeetCode 279. 完全平方数一、题目详情给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例 1:输入:n = 12输出:3 解释:12 = 4 + 4 + 4示例 2:输入原创 2021-07-02 17:06:43 · 79 阅读 · 0 评论 -
LeetCode 253. 会议室 II
LeetCode 253. 会议室 II一、题目详情原题链接:253. 会议室 II给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,为避免会议冲突,同时要考虑充分利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排。示例 1:输入:intervals = [[0,30],[5,10],[15,20]]输出:2示例 2:输入:intervals = [[7,10],[2,4]]原创 2021-07-02 11:17:49 · 327 阅读 · 0 评论 -
LeetCode 240. 搜索二维矩阵 Ⅱ
LeetCode 240. 搜索二维矩阵 Ⅱ一、题目详情原题链接:240. 搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true原创 2021-07-01 19:00:36 · 95 阅读 · 0 评论 -
LeetCode 238. 除自身以外数组的乘积
LeetCode 238. 除自身以外数组的乘积一、题目详情原题链接:238. 除自身以外数组的乘积给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]**提示:**题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请**不要使用除法,**且在原创 2021-07-01 17:45:47 · 77 阅读 · 0 评论 -
LeetCode 236. 二叉树的最近公共祖先
LeetCode 236. 二叉树的最近公共祖先一、题目详情给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。示例 2原创 2021-07-01 16:23:46 · 63 阅读 · 0 评论 -
LeetCode 221. 最大正方形
LeetCode 221. 最大正方形一、题目详情在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:4示例 2:输入:matrix = [["0","1"],["1","0"]]输出:1示例 3:输入:matrix =原创 2021-07-01 10:40:16 · 67 阅读 · 0 评论 -
LeetCode 215. 数组中的第K个最大元素
LeetCode 215. 数组中的第K个最大元素一、题目详情在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。二、暴力法(冒泡排序) 第一次冒泡后最大的数在数组最后一项; 第二次冒原创 2021-06-30 17:02:34 · 76 阅读 · 0 评论 -
LeetCode 208. 实现Trie(前缀树)
LeetCode 208. 实现Trie(前缀树)一、题目详情Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);原创 2021-06-29 21:14:06 · 60 阅读 · 0 评论 -
LeetCode 207. 课程表
LeetCode 207. 课程表一、题目详情原题链接:207. 课程表你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?原创 2021-06-28 18:21:27 · 68 阅读 · 1 评论 -
LeetCode 200. 岛屿数量
LeetCode 200. 岛屿数量一、题目详情原题链接:200. 岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0",原创 2021-06-28 16:16:20 · 53 阅读 · 1 评论 -
LeetCode 198. 打家劫舍
LeetCode 198. 打家劫舍一、题目详情你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 =原创 2021-06-25 16:36:09 · 75 阅读 · 1 评论 -
LeetCode 152. 乘积最大子序列
LeetCode 152. 乘积最大子序列一、题目详情给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 连续子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是连续子数组。二、动态规划法 本题可以用动态规划法解决。在遍历数组时记录当前最大乘积并不断更新。 但由于原创 2021-06-25 11:35:55 · 96 阅读 · 0 评论 -
LeetCode 148. 排序链表
LeetCode 148. 排序链表一、题目详情给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 10^4]原创 2021-06-25 10:26:15 · 76 阅读 · 0 评论 -
LeetCode 146. LRU缓存机制
LeetCode 146. LRU缓存机制一、题目详情原题链接:146. LRU 缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果原创 2021-06-24 15:48:06 · 76 阅读 · 0 评论 -
LeetCode 139. 单词拆分
LeetCode 139. 单词拆分一、题目详情原题链接:139. 单词拆分给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。原创 2021-06-23 16:27:25 · 67 阅读 · 0 评论 -
LeetCode 128. 最长连续序列
LeetCode 128. 最长连续序列一、题目详情原题链接:128. 最长连续序列给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。**进阶:**你可以设计并实现时间复杂度为 O(n) 的解决方案吗?示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9提示:0原创 2021-06-22 18:04:10 · 95 阅读 · 1 评论 -
LeetCode 114. 二叉树展开为链表
LeetCode 114. 二叉树展开为链表一、题目详情原题链接:114. 二叉树展开为链表给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例 1:输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]示例 2:输入原创 2021-06-22 15:53:59 · 69 阅读 · 0 评论 -
LeetCode 105. 从前序与中序遍历序列构造二叉树
LeetCode 105. 从前序与中序遍历序列构造二叉树一、题目详情根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7二、递归法先序遍历的顺序是根节点,左子树,右子树。中序遍历的顺序是左子树,根节点,右子树。所以只需要根据先序遍历得到根节点原创 2021-06-21 18:16:40 · 72 阅读 · 0 评论 -
LeetCode 102. 二叉树的层序遍历
LeetCode 102. 二叉树的层序遍历一、题目详情给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层序遍历结果:[ [3], [9,20], [15,7]]二、广度优先遍历法/** * Definition for a binary tree node. * public原创 2021-06-21 16:44:05 · 73 阅读 · 0 评论 -
LeetCode 98. 验证二叉搜索树
LeetCode 98. 验证二叉搜索树一、题目详情给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,n原创 2021-06-21 11:37:31 · 58 阅读 · 0 评论 -
LeetCode 79. 单词搜索
LeetCode 79. 单词搜索一、题目详情原题链接:79. 单词搜索给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E",原创 2021-06-18 18:52:44 · 107 阅读 · 0 评论