
算法
文章平均质量分 70
进击的code儿
这个作者很懒,什么都没留下…
展开
-
leetcode 1219. 黄金矿工
leetcode 1219. 黄金矿工文章目录leetcode 1219. 黄金矿工一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:1219. 黄金矿工1.题目描述你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。为了使收益最大化,矿工需要按以下规则来开采黄金:每当矿工进入一个单元,就会收集该单元格中的所有黄金。矿工原创 2022-05-16 21:00:39 · 527 阅读 · 1 评论 -
剑指 Offer 36. 二叉搜索树与双向链表
剑指 Offer 36. 二叉搜索树与双向链表文章目录剑指 Offer 36. 二叉搜索树与双向链表一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:剑指 Offer 36. 二叉搜索树与双向链表1.题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环原创 2022-05-15 11:15:29 · 365 阅读 · 1 评论 -
leetcode 430. 扁平化多级双向链表
leetcode 430. 扁平化多级双向链表文章目录leetcode 430. 扁平化多级双向链表一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:430. 扁平化多级双向链表相同题目:剑指 Offer II 028. 展平多级双向链表1.题目描述你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的 子指针 。这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例所示的原创 2022-05-14 07:57:32 · 323 阅读 · 0 评论 -
leetcode 1472. 设计浏览器历史记录
leetcode 1472. 设计浏览器历史记录文章目录leetcode 1472. 设计浏览器历史记录一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:1472. 设计浏览器历史记录1.题目描述你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 homepage ,你可以访问其他的网站 url ,也可以在浏览历史中后退 steps 步或前进 steps 步。请你实现 BrowserHistory 类:BrowserHistory(string homepag原创 2022-05-14 00:56:33 · 443 阅读 · 0 评论 -
leetcode 1019. 链表中的下一个更大节点
leetcode 1019. 链表中的下一个更大节点文章目录leetcode 1019. 链表中的下一个更大节点一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:1019. 链表中的下一个更大节点1.题目描述给定一个长度为 n 的链表 head对于列表中的每个节点,查找下一个 更大节点 的值。也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值 严格大于 它的值。返回一个整数数组 answer ,其中 answer[i] 是第 i 个节点( 从1开始 )的原创 2022-05-12 20:27:39 · 411 阅读 · 0 评论 -
449. 序列化和反序列化二叉搜索树
449. 序列化和反序列化二叉搜索树文章目录449. 序列化和反序列化二叉搜索树一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:449. 序列化和反序列化二叉搜索树]1.题目描述序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。设计一个算法来序列化和反序列化 二叉搜索树 。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字原创 2022-05-11 21:34:30 · 396 阅读 · 0 评论 -
leetcode 443. 压缩字符串
leetcode 443. 压缩字符串文章目录leetcode 443. 压缩字符串一、题目1.题目描述2.基础框架3.源码实现一、题目原题链接:443. 压缩字符串1.题目描述给你一个字符数组 chars ,请使用下述算法压缩:从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 :如果这一组长度为 1 ,则将字符追加到 s 中。否则,需要向 s 追加字符,后跟这一组的长度。压缩后得到的字符串 s 不应该直接返回 ,需要转储到字符数组 chars 中。需要注意的是,原创 2022-05-07 00:29:28 · 633 阅读 · 0 评论 -
leetcode 165. 比较版本号 (substr的运用)
leetcode 165. 比较版本号文章目录leetcode 165. 比较版本号一、题目1.题目描述比较版本号2.基础框架3.解题思路4.总结一、题目原题链接:165. 比较版本号1.题目描述比较版本号给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号原创 2022-05-06 17:55:58 · 184 阅读 · 0 评论 -
leetcode 1400. 构造 K 个回文字符串
leetcode 1400. 构造 K 个回文字符串文章目录leetcode 1400. 构造 K 个回文字符串一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:1400. 构造 K 个回文字符串1.题目描述给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000原创 2022-05-04 16:03:34 · 544 阅读 · 0 评论 -
leetcode 950. 按递增顺序显示卡牌
leetcode 950. 按递增顺序显示卡牌文章目录leetcode 950. 按递增顺序显示卡牌一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:950. 按递增顺序显示卡牌1.题目描述牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。现在,重复执行以下步骤,直到显示所有卡牌为止:从牌组顶部抽一张牌,显示它,然后将其从牌组中移出。如果牌组中仍有牌,则将下一张处于牌组顶部的牌放在原创 2022-05-04 15:13:02 · 162 阅读 · 0 评论 -
leetcode 1877. 数组中最大数对和的最小值
leetcode 1877. 数组中最大数对和的最小值文章目录leetcode 1877. 数组中最大数对和的最小值一、题目1.题目描述2.基础框架3.解题思路4.知识点一、题目原题链接:1877. 数组中最大数对和的最小值1.题目描述一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对和 。比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(1+5, 2+3, 4+4) = max(6, 5, 8) = 8原创 2022-05-03 22:32:46 · 208 阅读 · 0 评论 -
leetcode 977. 有序数组的平方
双指针思路原创 2022-05-03 11:35:49 · 122 阅读 · 0 评论 -
leetcode 1935. 可以输入的最大单词数
leetcode 1935. 可以输入的最大单词数文章目录leetcode 1935. 可以输入的最大单词数一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:1935. 可以输入的最大单词数1.题目描述键盘出现了一些故障,有些字母键无法正常工作。而键盘上所有其他键都能够正常工作。给你一个由若干单词组成的字符串 text ,单词间由单个空格组成(不含前导和尾随空格);另有一个字符串 brokenLetters ,由所有已损坏的不同字母键组成,返回你可以使用此键盘完全输入的 text原创 2022-05-02 22:31:15 · 191 阅读 · 0 评论 -
leetcode 1047. 删除字符串中的所有相邻重复项
leetcode 1047. 删除字符串中的所有相邻重复项文章目录leetcode 1047. 删除字符串中的所有相邻重复项一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:1047. 删除字符串中的所有相邻重复项1.题目描述给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例原创 2022-05-02 22:25:19 · 221 阅读 · 0 评论 -
leetcode 1160.拼写单词
leetcode 1160.拼写单词文章目录leetcode 1160.拼写单词一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:1160. 拼写单词1.题目描述给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。返回词汇表 words原创 2022-05-02 22:19:47 · 256 阅读 · 0 评论 -
leetcode 500. 键盘行
leetcode 500. 键盘行文章目录leetcode 500. 键盘行一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:500. 键盘行1.题目描述给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 "qwertyuiop" 组成。第二行由字符 "asdfghjkl" 组成。第三行由字符 "zxcvbnm" 组成。示例 1:输入:words = ["Hello","Alaska原创 2022-05-02 22:14:46 · 216 阅读 · 0 评论 -
[leetcode每日一题] 908.最小差值 I
[leetcode每日一题] 908.最小差值 I原创 2022-04-30 12:04:23 · 131 阅读 · 0 评论 -
剑指 Offer II 107. 矩阵中的距离
广度优先遍历原创 2022-04-23 14:36:14 · 860 阅读 · 0 评论 -
leetcode 863.二叉树中所有距离为 K 的结点
二叉树,图,广度优先遍历原创 2022-04-21 13:53:10 · 1480 阅读 · 0 评论 -
leetcode 1306.跳跃游戏 III
广度优先遍历原创 2022-04-21 11:30:51 · 281 阅读 · 0 评论 -
剑指 Offer II 015. 字符串中的所有变位词
哈希,滑动窗口,变位词问题原创 2022-04-13 11:03:53 · 407 阅读 · 0 评论 -
leetcode 310. 最小高度树
BFS,树,树的直径原创 2022-04-07 14:33:58 · 132 阅读 · 0 评论 -
leetcode 938. 二叉搜索树的范围和
938. 二叉搜索树的范围和文章目录938. 二叉搜索树的范围和一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:938. 二叉搜索树的范围和1.题目描述给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。示例 1:输入:root = [10,5,15,3,7,null,18], low = 7, high = 15输出:32示例 2:输入:root = [10,5,15,3,7,13,18,1,null,6], low原创 2022-04-05 22:26:31 · 760 阅读 · 0 评论 -
leetcode 1582. 二进制矩阵中的特殊位置
1582. 二进制矩阵中的特殊位置文章目录1582. 二进制矩阵中的特殊位置一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:1582. 二进制矩阵中的特殊位置1.题目描述给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 *mat* 中特殊位置的数目 。特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特原创 2022-04-03 23:44:53 · 824 阅读 · 0 评论 -
leetcode 1380. 矩阵中的幸运数
1380. 矩阵中的幸运数文章目录1380. 矩阵中的幸运数一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:1380. 矩阵中的幸运数1.题目描述给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。幸运数 是指矩阵中满足同时下列两个条件的元素:在同一行的所有元素中最小在同一列的所有元素中最大示例 1:输入:matrix = [[3,7,8],[9,11,13],[15,16,17]]输出:[15]解释:15 是唯一的原创 2022-04-03 23:09:26 · 456 阅读 · 0 评论 -
Leetcode 539. 最小时间差
539. 最小时间差文章目录539. 最小时间差一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:539. 最小时间差1.题目描述给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1:输入:timePoints = ["23:59","00:00"]输出:1示例 2:输入:timePoints = ["00:00","23:59","00:00"]输出:0提示:2 <=原创 2022-04-02 00:44:09 · 495 阅读 · 0 评论 -
leetcode 376.摆动序列
leetcode 376.摆动序列文章目录leetcode 376.摆动序列一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:376.摆动序列1.题目描述如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 **摆动序列 。**第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。相反,[1, 4,原创 2022-03-27 20:52:43 · 499 阅读 · 0 评论 -
leetcode 931.下降路径最小和
931.下降路径最小和文章目录931.下降路径最小和一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:931.下降路径最小和1.题目描述给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 (row, col) 的下一个元素应当是 (row原创 2022-03-26 19:23:37 · 1108 阅读 · 0 评论 -
64.最小路径和
64.最小路径和文章目录64.最小路径和一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:64.最小路径和1.题目描述给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。**说明:**每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,原创 2022-03-26 17:10:47 · 1380 阅读 · 0 评论 -
剑指 Offer II 100. 三角形中最小路径之和
剑指 Offer II 100. 三角形中最小路径之和文章目录剑指 Offer II 100. 三角形中最小路径之和一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:剑指 Offer II 100. 三角形中最小路径之和1.题目描述给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步原创 2022-03-26 16:35:51 · 154 阅读 · 0 评论 -
剑指 Offer II 099. 最小路径之和
剑指 Offer II 099. 最小路径之和文章目录剑指 Offer II 099. 最小路径之和一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:剑指 Offer II 099. 最小路径之和1.题目描述给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:一个机器人每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为原创 2022-03-25 11:25:10 · 131 阅读 · 0 评论 -
Leetode 416.分割等和子集
416.分割等和子集文章目录416.分割等和子集一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:416.分割等和子集1.题目描述给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等原创 2022-03-24 19:59:26 · 653 阅读 · 0 评论 -
leetcode 724.寻找数组的中心下标
724.寻找数组的中心下标文章目录724.寻找数组的中心下标一、题目1.题目描述2.基础框架3.解题思路一、题目原题链接:724.寻找数组的中心下标1.题目描述给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心原创 2022-03-21 18:06:02 · 130 阅读 · 0 评论 -
leetcode 1413.逐步求和得到正数的最小值
1413.逐步求和得到正数的最小值文章目录1413.逐步求和得到正数的最小值一、题目1.题目描述2.基础框架3.解题思路一、题目点击跳转leetcode原题1.题目描述给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue 。示例 1:输入:nums = [-3,2,-原创 2022-03-21 11:14:39 · 687 阅读 · 0 评论 -
leetcode 1732.找到最高海拔
1732.找到最高海拔点击跳转题目链接:1732.找到最高海拔文章目录1732.找到最高海拔一、题目1.题目描述2.基础框架3.解题思路一、题目1.题目描述有一个自行车手打算进行一场公路骑行,这条路线总共由 n + 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差(0 <= i < n)。请你返回 最高点的海拔 。示例 1:输入:gain = [-5,1原创 2022-03-21 10:19:00 · 906 阅读 · 0 评论 -
leetcode1588.所有奇数长度子数组的和
leetcode 1588.所有奇数长度子数组的和原创 2022-03-21 09:41:03 · 412 阅读 · 0 评论