
LeetCode 热题 HOT
文章平均质量分 72
LeetCode 热题 HOT
Triangulum
Fighting!!Fighting!!Go!!Go!!
展开
-
LeetCode 热题 HOT 100 第八十八天 739. 每日温度 用python3求解
解法:递减栈原创 2022-08-27 23:35:32 · 536 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十七天 621. 任务调度器 用python3求解
解法:构造&桶思想原创 2022-08-27 23:00:18 · 152 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十六天 581. 最短无序连续子数组 用python3求解
解法:一次遍历原创 2022-08-25 23:13:34 · 239 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十五天 560. 和为 K 的子数组 用python3求解
解法:前缀和 + 哈希表优化原创 2022-08-25 22:33:38 · 460 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十四天 538. 把二叉搜索树转换为累加树 用python3求解
解法:反序中序遍历(右中左遍历)原创 2022-08-24 22:20:52 · 169 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十三天 438. 找到字符串中所有字母异位词 用python3求解
解法:滑动窗口原创 2022-08-24 21:44:53 · 308 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十二天 437. 路径总和 III 用python3求解
解法:DFS(深度优先搜索遍历)原创 2022-08-23 23:31:34 · 286 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十一天 647. 回文子串 用python3求解
解法:双指针法原创 2022-08-23 22:24:06 · 306 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第八十天 494. 目标和 中等题 用python3求解
解法:动态规划(0-1背包问题)原创 2022-08-23 21:48:01 · 212 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十九天 416. 分割等和子集 中等题 用python3求解
解法:动态规划(0-1背包问题)原创 2022-08-22 22:46:51 · 281 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十八天 406. 根据身高重建队列 中等题 用python3求解
解法:先排序,再插队原创 2022-08-21 03:49:34 · 202 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十七天 399. 除法求值 中等题 用python3求解
图+深度优先dfs(先构造图再dfs)原创 2022-08-21 03:08:13 · 175 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十六天 394. 字符串解码 中等题 用python3求解
解题方案:辅助栈法原创 2022-08-21 02:02:51 · 231 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十五天 347. 前K个高频元素 中等题 用python3求解
与基于比较的排序算法 时间复杂度 O(nlogn)O(nlogn) 相比,使用 堆,优先队列 复杂度可以下降到 O(nlogk)O(nlogk),在总体数据规模 n 较大,而维护规模 k 较小时,时间复杂度优化明显。与基于比较的排序算法 时间复杂度O(nlogn)相比,使用堆,优先队列的复杂度可以下降到O(nlogk),在总体数据规模n较大,而维护规模k较小时,时间复杂度优化明显。你可以按 任意顺序 返回答案。topk大:构建一个 k 个数的最小堆,当读取的数大于根节点时,替换根节点,重新塑造最小堆。原创 2022-08-21 01:28:36 · 310 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十四天 337. 打家劫舍 III 中等题 用python3求解
一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。难点在于,如果从上往下看这棵树,是无法在遍历到某一个节点时决定【偷或不偷】这个节点的收益的。返回 在不触动警报的情况下 ,小偷能够盗取的最高金额。小偷又发现了一个新的可行窃的地区。输入: root = [3,2,3,null,3,null,1]解释: 小偷一晚能够盗取的最高金额 3 + 3 + 1 = 7。递归处理,返回当前节点偷与不偷的两个结果,取其中最大的一个。输入: root = [3,4,5,1,3,null,1]...原创 2022-08-18 22:37:17 · 373 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十三天 322. 零钱兑换 中等题 用python3求解
当前填满容量j最少需要的硬币=min(之前填满容量j最少需要的硬币,填满容量j-coin需要的硬币+1个当前硬币)返回dp[n][amount],如果dp[n][amount]的值为amount+1没有变过,说明找不到硬币组合,返回-1。转移方程dp[i][j]=min(dp[i-1][j],dp[i][j-coins[i-1]]+1。输入coins=[1,2,5],amount=11。输入coins=[1],amount=0。...原创 2022-07-25 13:11:37 · 107 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十二天 312. 戳气球 困难题 用python3求解
那你可能又想问了,戳爆粉色气球我能获得val[i]*val[k]*val[j]这么多金币我能理解(因为戳爆k的时候只剩下这三个气球了),所以你把(i,k)开区间所有气球戳爆,然后把戳爆这些气球的所有金币都收入囊中,金币数量记录在dp[i][k]你在(i,j)开区间得到的金币可以由dp[i][k]和dp[k][j]进行转移。同理,(k,j)开区间你也已经都戳爆了,钱也拿了,记录在dp[k][j]所以你把这些之前已经拿到的钱dp[i][k]+dp[k][j]收着,......原创 2022-07-24 16:28:22 · 337 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十一天 309. 最佳买卖股票时机含冷冻期 中等题 用python3求解
举例empty_freeze=hold+price表示状态为empty_freeze的时候,手里头获得的利益就是原来持有的钱+卖出股票后的钱(price就是当天股票的成交价))给定一个整数数组prices,其中第prices[i]表示第i天的股票价格。解释对应的交易状态为[买入,卖出,冷冻期,买入,卖出]注意你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入prices=[1,2,3,0,2]输入prices=[1]...原创 2022-07-22 23:03:34 · 185 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第七十天 301. 删除无效的括号 困难题 用python3求解
如果我们每次只删除一个括号,然后观察被删除一个括号后是否合法,如果已经合法了,我们就不用继续删除了啊。给你一个由若干括号和字母组成的字符串s,删除最小数量的无效括号,使得输入的字符串有效。如何检查括号是否是一个合法的括号,这是一个简单题,可以用堆栈,也可以维护计数器。例如currentlevel是[“(()”,“())”]输出[“(a())()”,“(a)()()”]输出[“(())()”,“()()()”]输入s=“(a)())()”输入s=“()())()”...原创 2022-07-22 19:54:20 · 148 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十九天 300. 最长递增子序列 中等题 用python3求解
题目地址给你一个整数数组 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,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,7,7原创 2022-06-06 23:32:20 · 237 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十八天 297. 二叉树的序列化与反序列化 困难题 用python3求解
题目地址序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示: 输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其原创 2022-06-06 15:17:10 · 140 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十七天 287. 寻找重复数 中等题 用python3求解
题目地址给定一个包含 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提示:1 ...原创 2022-06-05 15:03:32 · 493 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十六天 617. 合并二叉树 简单题 用python3求解
题目地址给你两棵二叉树: root1 和 root2 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始。示例 1:输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]输出:[3,4,5原创 2022-06-04 01:06:59 · 113 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十六天 543. 二叉树的直径 简单题 用python3求解
题目地址给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。解法:深度优先搜索参考官方题解:指路可能遇到的失误:指路首先我们知道一条路径的长度为该路径经过的节点数减一,所以求直径(即求路径长度的最大值)等效于求路径经过节点数的最大值减一。而任意一条路径均可以被看作由某个节点为起点原创 2022-06-04 00:50:11 · 168 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十六天 461. 汉明距离 简单题 用python3求解
题目地址两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。示例 1:输入:x = 1, y = 4输出:2解释:1 (0 0 0 1)4 (0 1 0 0)示例 2:输入:x = 3, y = 1输出:1提示:0 ...原创 2022-06-04 00:28:57 · 183 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十五天 448. 找到所有数组中消失的数字 简单题 用python3求解
解法:原地修改数组原创 2022-06-02 01:44:29 · 176 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十五天 338. 比特位计数 简单题 用python3求解
解法:动态规划+位运算原创 2022-06-02 01:14:14 · 148 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十五天 283. 移动零 简单题 用python3求解
解法:双指针原创 2022-06-02 00:17:31 · 126 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十四天 279. 完全平方数 中等题 用python3求解
解法:广度优先搜索遍历(BFS)原创 2022-06-01 23:48:03 · 197 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十三天 253. 会议室 II 中等题 用python3求解
解法:排序+优先队列(最小堆)用python实现原创 2022-06-01 18:49:37 · 909 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十二天 240. 搜索二维矩阵 II 中等题 用python3求解
题目地址编写一个高效的算法来搜索 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示例 2:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18原创 2022-06-01 11:57:08 · 228 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十一天 239. 滑动窗口最大值 困难题 用python3求解
题目地址给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7原创 2022-05-30 00:39:49 · 541 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第六十天 238. 除自身以外数组的乘积 中等题 用python3求解
题目地址给你一个整数数组nums,返回 数组answer,其中 answer[i] 等于nums中除 nums[i]之外其余各元素的乘积 。题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n) 时间复杂度内完成此题。示例 1:输入: nums = [1,2,3,4]输出: [24,12,8,6]示例 2:输入: nums = [-1,1,0,-3,3]输出: [0,0,9,0,0]提示:2 <= nums.length原创 2022-05-29 23:26:57 · 178 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第五十九天 236. 二叉树的最近公共祖先 中等题 用python3求解
题目地址给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 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:输入:root = [3,5,1,6,2,0,8,原创 2022-05-29 12:51:48 · 203 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第五十八天 234. 回文链表 简单题 用python3求解
题目地址你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例 1:输出:true示例 2:输入:head = [1,2]输出:false提示:链表中节点数目在范围[1, 105] 内0 <= Node.val <= 9进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解法:快慢指针该解法能达到 O(n) 时间复杂度和 O(1) 空间复杂度的要求。避免使用O(n) 额外空间的方法原创 2022-05-25 23:41:14 · 188 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第五十八天 226. 翻转二叉树 简单题 用python3求解
题目地址给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3]输出:[2,3,1]示例 3:输入:root = []输出:[]提示:树中节点数目范围在 [0, 100] 内-100 <= Node.val <= 100解法:递归仔细看下题目的输入和输出,输出的左右子树的位置跟输入正好是相反的,于是我们可以递原创 2022-05-25 22:09:26 · 260 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第五十七天 221. 最大正方形 中等题 用python3求解
题目地址在一个由 ‘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 = [[“0”]]输出:0提示:m == ma原创 2022-05-25 21:07:33 · 223 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第五十六天 215. 数组中的第K个最大元素 中等题 用python3求解
题目地址给定整数数组 nums 和整数 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提示:1 <= k <= nums.length <= 10^4-10的4次方 <= nums[i] <= 10的4次方解法:快速排序的思想不原创 2022-05-25 18:29:15 · 160 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第五十五天 208. 实现 Trie (前缀树) 中等题 用python3求解
题目地址Trie(发音类似 “try”)或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回true(即,在检索之前已经插入);否则,返回 false 。boolean startsWi原创 2022-05-25 15:07:23 · 217 阅读 · 0 评论 -
LeetCode 热题 HOT 100 第五十四天 207. 课程表 中等题 用python3求解
题目地址你这个学期必须选修numCourses门课程,记为0到numCourses-1 。在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites给出,其中prerequisites[i] = [ai, bi] ,表示如果要学习课程ai则必须先学习课程 bi。例如,先修课程对[0,1]表示:想要学习课程0,你需要先完成课程1。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。示例 1:输入:numCourses = 2, prerequ原创 2022-05-24 23:16:26 · 430 阅读 · 0 评论