![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
我的leetcode题解
文章平均质量分 75
_Alkaid_
"清醒 独立 克制,自由而不放纵,要做到。"
展开
-
面试题 04.06. 后继者
设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。原创 2022-05-16 11:53:02 · 211 阅读 · 0 评论 -
61.旋转链表
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。原创 2022-05-03 21:05:40 · 570 阅读 · 0 评论 -
429. N 叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。原创 2022-04-08 18:31:53 · 807 阅读 · 0 评论 -
88. 合并两个有序数组
给你两个按 非递减顺序 排列的整数数组nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。原创 2022-04-04 22:09:18 · 1292 阅读 · 0 评论 -
567.字符串的排列
给你两个字符串s1和s2 ,写一个函数来判断 s2 是否包含 s1的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。原创 2022-04-04 21:09:55 · 933 阅读 · 0 评论 -
28. 实现strStr()
实现strStr()函数。给你两个字符串haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。原创 2022-04-03 17:59:10 · 785 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复原创 2022-04-01 21:34:53 · 380 阅读 · 0 评论 -
954.二倍数对数组
给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <=i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]”时,返回 true;否则,返回 false。原创 2022-04-01 20:23:35 · 349 阅读 · 0 评论 -
728.自除数
自除数是指可以被它包含的每一位数整除的数。例如,128 是一个 自除数 ,因为128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。自除数 不允许包含 0 。给定两个整数left和right ,返回一个列表,列表的元素是范围[left, right]内所有的 自除数 。原创 2022-03-31 21:07:19 · 593 阅读 · 0 评论 -
969.煎饼排序
给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。一次煎饼翻转的执行过程如下:选择一个整数 k ,1 <= k <= arr.length反转子数组 arr[0...k-1](下标从 0 开始)例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组 [3,2,1] ,得到 arr = [1,2,3,4] 。原创 2022-02-19 16:29:35 · 301 阅读 · 0 评论 -
1791.找出星型图的中心节点
有一个无向的 星型 图,由 n 个编号从 1 到 n 的节点组成。星型图有一个 中心 节点,并且恰有 n - 1 条边将中心节点与其他每个节点连接起来。给你一个二维整数数组 edges ,其中edges[i] = [ui, vi] 表示在节点 ui 和 vi 之间存在一条边。请你找出并返回edges 所表示星型图的中心节点。原创 2022-02-18 23:09:28 · 512 阅读 · 0 评论 -
22.括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。原创 2022-02-16 19:31:38 · 343 阅读 · 0 评论 -
1380.矩阵中的幸运数
给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。幸运数是指矩阵中满足同时下列两个条件的元素:在同一行的所有元素中最小在同一列的所有元素中最大原创 2022-02-16 00:51:04 · 252 阅读 · 0 评论 -
540.有序数组中的单一元素
给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。原创 2022-02-15 00:43:35 · 402 阅读 · 0 评论 -
1189.“气球“的最大数量
给你一个字符串text,你需要使用 text 中的字母来拼凑尽可能多的单词"balloon"(气球)。字符串text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词"balloon"。原创 2022-02-13 17:46:32 · 147 阅读 · 0 评论 -
1405.最长快乐字符串
给你三个整数 a,b ,c,请你返回 任意一个 满足下列全部条件的字符串 s:s 是一个尽可能长的快乐字符串。s 中 最多 有a 个字母 'a'、b个字母 'b'、c 个字母 'c' 。s 中只含有 'a'、'b' 、'c' 三种字母。原创 2022-02-07 15:36:37 · 470 阅读 · 0 评论 -
1748.唯一元素的和
给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的 和 。原创 2022-02-06 12:58:59 · 461 阅读 · 0 评论 -
1219.黄金矿工
你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。为了使收益最大化,矿工需要按以下规则来开采黄金:每当矿工进入一个单元,就会收集该单元格中的所有黄金。矿工每次可以从当前位置向上下左右四个方向走。每个单元格只能被开采(进入)一次。不得开采(进入)黄金数目为 0 的单元格。矿工可以从网格中 任意一个 有黄金的单元格出发或者是停止。原创 2022-02-05 18:26:49 · 335 阅读 · 0 评论 -
1725.可以形成最大正方形的矩阵数目
给你一个数组 rectangles ,其中 rectangles[i] = [li, wi] 表示第 i 个矩形的长度为 li 、宽度为 wi 。如果存在 k 同时满足 k <= li 和 k <= wi ,就可以将第 i 个矩形切成边长为 k 的正方形。例如,矩形 [4,6] 可以切成边长最大为 4 的正方形。设 maxLen 为可以从矩形数组rectangles 切分得到的 最大正方形 的边长。请你统计有多少个矩形能够切出边长为 maxLen 的正方形,并返回矩形 数目 。原创 2022-02-04 23:31:45 · 688 阅读 · 0 评论 -
2000.反转单词前缀
给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。原创 2022-02-02 16:33:23 · 1059 阅读 · 0 评论 -
884.两句话中的不常见单词
句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。原创 2022-01-31 16:24:27 · 6323 阅读 · 0 评论 -
1342.将数字变成0的操作次数
给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。原创 2022-01-31 15:54:33 · 6298 阅读 · 0 评论 -
19.删除链表的倒数第N个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。原创 2022-01-28 21:59:06 · 1167 阅读 · 0 评论 -
1996.游戏中的弱角色的数量
你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个二维整数数组 properties ,其中 properties[i] = [attacki, defensei] 表示游戏中第 i 个角色的属性。如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击和防御等级,则认为该角色为 弱角色 。更正式地,如果认为角色 i 弱于 存在的另一个角色 j ,那么 attackj > attacki 且 defensej > defensei 。返回 弱角色 的数量。原创 2022-01-28 20:06:32 · 2198 阅读 · 0 评论 -
18.四数之和
给你一个由 n 个整数组成的数组nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d< na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。原创 2022-01-28 16:45:41 · 6742 阅读 · 0 评论 -
2047.句子中的有效单词数
句子仅由小写字母('a' 到 'z')、数字('0' 到 '9')、连字符('-')、标点符号('!'、'.' 和 ',')以及空格(' ')组成。每个句子可以根据空格分解成 一个或者多个 token ,这些 token 之间由一个或者多个空格 ' ' 分隔。原创 2022-01-27 17:57:56 · 408 阅读 · 0 评论 -
2013.检测正方形-LeetCode
给你一个在 X-Y 平面上的点构成的数据流。设计一个满足下述要求的算法:添加 一个在数据流中的新点到某个数据结构中。可以添加 重复 的点,并会视作不同的点进行处理。给你一个查询点,请你从数据结构中选出三个点,使这三个点和查询点一同构成一个 面积为正 的 轴对齐正方形 ,统计 满足该要求的方案数目。轴对齐正方形 是一个正方形,除四条边长度相同外,还满足每条边都与 x-轴 或 y-轴 平行或垂直。原创 2022-01-26 21:04:09 · 554 阅读 · 0 评论 -
1688.比赛中的配对次数-LeetCode
给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制:如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。返回在比赛中进行的配对次数,直到决出获胜队伍为止。原创 2022-01-25 22:14:33 · 516 阅读 · 0 评论 -
2045.到达目的地的第二短时间
城市用一个 双向连通 图表示,图中有 n 个节点,从 1 到 n 编号(包含 1 和 n)。图中的边用一个二维整数数组 edges 表示,其中每个 edges[i] = [ui, vi]表示一条节点ui 和节点vi 之间的双向连通边。每组节点对由 最多一条 边连通,顶点不存在连接到自身的边。穿过任意一条边的时间是 time分钟。原创 2022-01-25 00:40:52 · 94 阅读 · 0 评论 -
17.电话号码的字母组合-LeetCode
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。原创 2022-01-23 22:00:49 · 471 阅读 · 0 评论 -
2034.股票价格波动-LeetCode
给你一支股票价格的数据流。数据流中每一条记录包含一个 时间戳和该时间点股票对应的 价格。不巧的是,由于股票市场内在的波动性,股票价格记录可能不是按时间顺序到来的。某些情况下,有的记录可能是错的。如果两个有相同时间戳的记录出现在数据流中,前一条记录视为错误记录,后出现的记录 更正前一条错误的记录。原创 2022-01-23 16:22:21 · 178 阅读 · 0 评论 -
1332.删除回文子序列-LeetCode
给你一个字符串s,它仅由字母'a' 和 'b'组成。每一次删除操作都可以从 s 中删除一个回文 子序列。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。原创 2022-01-22 13:04:10 · 1442 阅读 · 0 评论 -
1345.跳跃游戏IV-LeetCode
给你一个整数数组arr,你一开始在数组的第一个元素处(下标为 0)。每一步,你可以从下标 i 跳到下标:i + 1满足:i + 1 < arr.lengthi - 1满足:i - 1 >= 0j满足:arr[i] == arr[j]且i != j请你返回到达数组最后一个元素的下标处所需的 最少操作次数 。原创 2022-01-21 22:50:28 · 2325 阅读 · 0 评论 -
16.最接近的三数之和-LeetCode
给你一个长度为 n 的整数数组nums和 一个目标值target。请你从 nums 中选出三个整数,使它们的和与target最接近。返回这三个数的和。假定每组输入只存在恰好一个解。原创 2022-01-20 17:48:31 · 1292 阅读 · 0 评论 -
2029.石子游戏 IX-LeetCode
Alice 和 Bob 再次设计了一款新的石子游戏。现有一行 n 个石子,每个石子都有一个关联的数字表示它的价值。给你一个整数数组 stones ,其中 stones[i] 是第 i 个石子的价值。如果玩家移除石子后,导致 所有已移除石子 的价值总和 可以被 3 整除,那么该玩家就 输掉游戏 。如果不满足上一条,且移除后没有任何剩余的石子,那么 Bob 将会直接获胜(即便是在 Alice 的回合)。原创 2022-01-20 16:34:39 · 2418 阅读 · 0 评论 -
539.最小时间差-LeetCode
给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。原创 2022-01-19 21:01:00 · 858 阅读 · 0 评论 -
1220.统计元音字母序列的数目-LeetCode
动态规划求解-1220.统计元音字母序列的数目-LeetCode原创 2022-01-17 16:33:44 · 560 阅读 · 0 评论 -
1.两数之和-LeetCode
一、问题描述这里直接采用的LeetCode上面的问题描述。给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。下面给出示例:二、解题思想 首先想到的方法,应该是使用两重for循环来依次遍历nums,但是时间复杂度为,这里就不给出两重for循环的...原创 2022-01-17 01:01:55 · 101 阅读 · 0 评论 -
15.三数之和-LeetCode
给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。原创 2022-01-16 14:10:59 · 540 阅读 · 0 评论 -
14.最长公共前缀-LeetCode
1.问题描述这里直接采用的是leetcode上面的问题描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。下面给出示例:2.解题思路首先我们思考什么为最长公共前缀,在一个字符串数组中找到最长公共前缀,有什么特殊的情况。 空字符串数组返回""。 字符串数组只有一个字符串时,那么最长公共前缀就是这个字符串本身。 最长公共前缀应该是小于等于字符串数组中最短的那...原创 2022-01-15 18:23:02 · 239 阅读 · 0 评论