LeetCode
lih627
可以通过训练提高自己的平均水平并减少方差。
展开
-
LeetCode 1130 叶值的最小代价生成树
LeetCode 1130 叶值的最小代价生成树文章目录LeetCode 1130 叶值的最小代价生成树题目思路题目给你一个正整数数组 arr,考虑所有满足以下条件的二叉树:每个节点都有 0 个或是 2 个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。(知识回顾:如果一个节点有 0 个子节点,那么该节点为叶节点。)每个非叶节点的值等于其左子树和右子树中叶节点的最大值的乘积。在所有这样的二叉树中,返回每个非叶节点的值的最小可能总和。这个和的值是一个 32 位原创 2020-11-18 00:31:45 · 219 阅读 · 0 评论 -
LeetCode 1074 元素为目标值的子矩阵数量
LeetCode 1074 元素为目标值的子矩阵数量文章目录LeetCode 1074 元素为目标值的子矩阵数量题目思路一 前缀和思路二 前缀和+哈希表优化题目给出矩阵 matrix 和目标值 target,返回元素总和等于目标值的非空子矩阵的数量。子矩阵 x1, y1, x2, y2 是满足 x1 <= x <= x2 且 y1 <= y <= y2 的所有单元 matrix[x][y] 的集合。如果 (x1, y1, x2, y2) 和 (x1', y1', x2',原创 2020-11-14 15:06:19 · 262 阅读 · 0 评论 -
LeetCode 面试题05.04 下一个数(位运算)
LeetCode 面试题05.04 下一个数(位运算)文章目录LeetCode 面试题05.04 下一个数(位运算)题目思路题解参考:github 代码LeetCode题解代码集合中的位运算题目题目来自LeetCode 面试题05.04下一个数。给定一个正整数,找出与其二进制表达式中 1 的个数相同且大小最接近的那两个数(一个略大,一个略小)。示例 1: 输入:num = 2(或者0b10)输出:[4, 1] 或者([0b100, 0b1])示例 2:输入:num = 1输原创 2020-10-17 17:38:11 · 347 阅读 · 0 评论 -
欧拉通路/回路和一笔画问题
欧拉通路/回路和一笔画问题简介欧拉通路、欧拉回路和欧拉图无向图有向图Hierholzer 算法LeetCode [332. 重新安排行程](https://leetcode-cn.com/problems/reconstruct-itinerary/)LeetCode [753. 破解保险箱](https://leetcode-cn.com/problems/cracking-the-safe/)简介LeetCode 每日一题刷到了一笔画问题。其核心是找到图的欧拉通路或欧拉回路。之前用DFS做的,算法也原创 2020-09-08 13:03:12 · 891 阅读 · 0 评论 -
LeetCode 0337 打家劫舍III
题目在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3 / \ 2 3 \ \原创 2020-08-05 10:53:59 · 178 阅读 · 0 评论 -
LeetCode 0406 根据身高重建队列
LeetCode 0406 根据身高重建队列题目思路1(离散化+树状数组 非最优)思路二(排序+贪心)题目假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]原创 2020-08-04 15:10:58 · 207 阅读 · 0 评论 -
LeetCode1499 满足不等式的最大值
题目给你一个数组 points 和一个整数 k 。数组中每个元素都表示二维平面上的点的坐标,并按照横坐标 x 的值从小到大排序。也就是说 points[i] = [xi, yi] ,并且在 1 <= i < j <= points.length 的前提下, xi < xj 总成立。请你找出 yi + yj + |xi - xj| 的 最大值,其中 |xi - xj| <= k 且 1 <= i < j <= points.length。题目测试数据保证至原创 2020-07-05 16:26:27 · 274 阅读 · 0 评论 -
LeetCode1498. 满足条件的子序列数目
题目给你一个整数数组 nums 和一个整数 target 。请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的非空子序列的数目。由于答案可能很大,请将结果对 10^9 + 7 取余后返回。思路排序 + 双指针将数组从小到大排序, 双指针left指向排好序的第一个元素, right指向最后一个.首先寻找符合条件的左右端点, 显然nums[left] + nums[right] <= target 时,符合条件, 此时我们统计可以使用的子序列个数为2r原创 2020-07-05 16:19:04 · 360 阅读 · 0 评论 -
LeetCode 1057 校园自行车分配
LeetCode 1057 校园自行车分配题目思路优化题目在由 2D 网格表示的校园里有 n 位工人(worker)和 m 辆自行车(bike),n <= m。所有工人和自行车的位置都用网格上的 2D 坐标表示。我们需要为每位工人分配一辆自行车。在所有可用的自行车和工人中,我们选取彼此之间曼哈顿距离最短的工人自行车对 (worker, bike),并将其中的自行车分配給工人。如果有多个 (worker, bike)对之间的曼哈顿距离相同,那么我们选择工人索引最小的那对。类似地,如果有多种不同的原创 2020-06-23 22:02:45 · 490 阅读 · 0 评论 -
LeetCode 第 194 场周赛
LeetCode 第 194 场周赛数组异或操作思路和代码保证文件名唯一思路及代码避免洪水泛滥思路及代码找到最小生成树里的关键边和伪关键边这次周赛比以往难很多.数组异或操作给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。思路和代码直接暴力class Solution: def xorOperation(self,原创 2020-06-22 03:21:45 · 302 阅读 · 0 评论 -
LeetCode 二叉树首个公共祖先
二叉树首个公共祖先题目思路题目设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。示例:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 和节点 1 的最近公共祖先是节点 3。注意二叉搜索树的表示root = [3,5,1,6,2,0,8,null,null,7,4] 3 / \ 5 1 / \ / \6原创 2020-06-19 00:30:20 · 202 阅读 · 0 评论 -
LeetCode 第 193 场周赛
LeetCode 第 193 场周赛一维数组的动态和思路不同整数的最少数目思路制作 m 束花所需的最少天数思路树节点的第 K 个祖先思路一维数组的动态和给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。思路前缀和模板即可class Solution: def runningSum(self, nums: List[int]) -> List[int]: ret原创 2020-06-16 20:49:40 · 371 阅读 · 0 评论 -
LeetCode 第 28 场双周赛
LeetCode 第 28 场双周赛商品折扣后的最终价格新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入商品折扣后的最终价格给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。商店里正原创 2020-06-14 14:11:31 · 408 阅读 · 0 评论