LeetCode
文章平均质量分 51
算法记录
我宿孤栈
略略略~
展开
-
Leetcode39- 使数组中所有元素都等于零(2357)
给你一个非负整数数组 nums。在一步操作中,你必须:选出一个正整数 x ,x 需要小于或等于 nums 中 最小 的 非零 元素。nums 中的每个正整数都减去 x。返回使 nums 中所有元素都等于 0 需要的 最少 操作数。示例 1:输入:nums = [1,5,0,3,5]输出:3解释:第一步操作:选出 x = 1 ,之后 nums = [0,4,0,2,4]。第二步操作:选出 x = 2 ,之后 nums = [0,2,0,0,2]。原创 2024-09-05 13:19:17 · 316 阅读 · 0 评论 -
Leetcode38- 找出强数对的最大异或值 I(2932)
给你一个下标从 0 开始的整数数组 nums。如果一对整数 x 和 y 满足以下条件,则称其为 强数对 :你需要从 nums 中选出两个整数,且满足:这两个整数可以形成一个强数对,并且它们的按位异或(XOR)值是在该数组所有强数对中的 最大值。返回数组 nums 所有可能的强数对中的 最大 异或值。注意,你可以选择同一个整数两次来形成一个强数对。示例 1:输入:nums = [1,2,3,4,5]输出:7。原创 2024-09-04 16:02:13 · 271 阅读 · 0 评论 -
Leetcode37-和相等的子数组(2395)
给你一个下标从 0 开始的整数数组 nums ,判断是否存在 两个 长度为 2 的子数组且它们的 和 相等。注意,这两个子数组起始位置的下标必须 不相同。如果这样的子数组存在,请返回 true,否则返回 false。子数组 是一个数组中一段连续非空的元素组成的序列。示例 1:输入:nums = [4,2,4]输出:true解释:元素为 [4,2] 和 [2,4] 的子数组有相同的和 6。示例 2:输入:nums = [1,2,3,4,5]输出:false。原创 2024-09-02 13:58:25 · 343 阅读 · 0 评论 -
Leetcode36-通过翻转子数组使两个数组相等(1406)
给你两个长度相同的整数数组 target 和 arr。每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。如果你能让 arr 变得与 target 相同,返回 True;否则,返回 False。示例 1:输入:target = [1,2,3,4], arr = [2,4,1,3]输出:true解释:你可以按照如下步骤使 arr 变成 target:1- 翻转子数组 [2,4,1] ,arr 变成 [1,4,2,3]原创 2024-09-02 11:20:53 · 330 阅读 · 0 评论 -
Leetcode35-清统计相似字符串对的数目(2506)
给你一个下标从 0 开始的字符串数组 words。如果两个字符串由相同的字符组成,则认为这两个字符串 相似。例如,“abca” 和 “cba” 相似,因为它们都由字符 ‘a’、‘b’、‘c’ 组成。然而,“abacba” 和 “bcfd” 不相似,因为它们不是相同字符组成的。请你找出满足字符串 words[i] 和 words[j] 相似的下标对 (i, j) ,并返回下标对的数目,其中 0 <= i < j <= words.length - 1。原创 2024-08-30 11:24:56 · 324 阅读 · 0 评论 -
Leetcode34-构成整天的下标对数目|(3184)
给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i < j 且 hours[i] + hours[j] 构成 整天 的下标对 i, j 的数目。整天 定义为时间持续时间是 24 小时的 整数倍。例如,1 天是 24 小时,2 天是 48 小时,3 天是 72 小时,以此类推。示例 1:输入: hours = [12,12,30,24,24]输出: 2解释:构成整天的下标对分别是 (0, 1) 和 (3, 4)。原创 2024-08-12 16:31:35 · 247 阅读 · 0 评论 -
Leetcode33-清除数字(3174)
给你一个字符串 s。你的任务是重复以下操作删除 所有 数字字符:删除 第一个数字字符 以及它左边 最近 的 非数字 字符。请你返回删除所有数字字符以后剩下的字符串。示例 1:输入:s = “abc”输出:“abc”解释:字符串中没有数字。示例 2:输入:s = “cb34”输出:“”解释:一开始,我们对 s[2] 执行操作,s 变为 “c4”。然后对 s[1] 执行操作,s 变为 “”。提示:s 只包含小写英文字母和数字字符。输入保证所有数字都可以按以上操作被删除。原创 2024-07-26 15:56:57 · 303 阅读 · 0 评论 -
Leetcode32-求出出现两次数字的 XOR 值(3158)
给你一个数组 nums ,数组中的数字 要么 出现一次,要么 出现两次。请你返回数组中所有出现两次数字的按位 XOR 值,如果没有数字出现过两次,返回 0。示例 1:输入:nums = [1,2,1,3]输出:1解释:nums 中唯一出现过两次的数字是 1。示例 2:输入:nums = [1,2,3]输出:0解释:nums 中没有数字出现两次。示例 3:输入:nums = [1,2,2,1]输出:3解释:数字 1 和 2 出现过两次。原创 2024-07-26 15:07:39 · 276 阅读 · 0 评论 -
Leetcode31-统计出现过一次的公共字符串(2085)
给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。示例 1:输入:words1 = [“leetcode”,“is”,“amazing”,“as”,“is”], words2 = [“amazing”,“leetcode”,“is”]输出:2输入:words1 = [“b”,“bb”,“bbb”], words2 = [“a”,“aa”,“aaa”]输出:0解释:没有字符串在两个数组中都恰好出现一次。原创 2024-04-28 11:55:46 · 278 阅读 · 0 评论 -
Leetcode30-最小展台数量(66)
力扣嘉年华将举办一系列展览活动,后勤部将负责为每场展览提供所需要的展台。已知后勤部得到了一份需求清单,记录了近期展览所需要的展台类型, demand[i][j] 表示第 i 天展览时第 j 个展台的类型。在满足每一天展台需求的基础上,请返回后勤部需要准备的 最小 展台数量。注意:同一展台在不同天中可以重复使用。示例 1:输入:demand = [“acd”,“bed”,“accd”]输出:6解释: 第 0 天需要展台 a、c、d;第 1 天需要展台 b、e、d;原创 2024-04-24 15:13:02 · 273 阅读 · 0 评论 -
Leetcode29-最大频率元素计数(3005)
给你一个由 正整数 组成的数组 nums。返回数组 nums 中所有具有 最大 频率的元素的 总频率。元素的 频率 是指该元素在数组中出现的次数。示例 1:输入:nums = [1,2,2,3,1,4]输出:4解释:元素 1 和 2 的频率为 2 ,是数组中的最大频率。因此具有最大频率的元素在数组中的数量是 4。示例 2:输入:nums = [1,2,3,4,5]输出:5解释:数组中的所有元素的频率都为 1 ,是最大频率。因此具有最大频率的元素在数组中的数量是 5。原创 2024-02-01 13:49:36 · 594 阅读 · 0 评论 -
Leetcode28-合并相似的物品(2363)
给你两个二维整数数组 items1 和 items2 ,表示两个物品集合。每个数组 items 有以下特质:items[i] = [valuei, weighti] 其中 valuei 表示第 i 件物品的 价值 ,weighti 表示第 i 件物品的 重量。items 中每件物品的价值都是 唯一的。请你返回一个二维数组 ret,其中 ret[i] = [valuei, weighti], weighti 是所有价值为 valuei 物品的 重量之和。注意:ret 应该按价值 升序 排序后返回。原创 2024-01-23 15:29:53 · 1325 阅读 · 0 评论 -
Leetcode27-判断一个数的数字技术是否等于数位的值(2283)
给你一个下标从 0 开始长度为 n 的字符串 num ,它只包含数字。如果对于 每个 0 <= i < n 的下标 i ,都满足数位 i 在 num 中出现了 num[i]次,那么请你返回 true ,否则返回 false。示例 1:输入:num = “1210”输出:true解释:数字 0 在 num 中出现了一次。数字 1 在 num 中出现了两次。数字 2 在 num 中出现了一次。数字 3 在 num 中出现了零次。原创 2024-01-23 15:23:30 · 545 阅读 · 0 评论 -
Leetcode26-按身高排序(2418)
给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights。两个数组的长度均为 n。对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。请按身高 降序 顺序返回对应的名字数组 names。示例 1:输入:names = [“Mary”,“John”,“Emma”], heights = [180,165,170]输出:[“Mary”,“Emma”,“John”]解释:Mary 最高,接着是 Emma 和 John。原创 2024-01-23 14:05:47 · 595 阅读 · 0 评论 -
Leetcode25-上升下降字符串(1370)
给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。重复步骤 5 ,直到你没法从 s 中选择字符。原创 2024-01-23 13:54:58 · 488 阅读 · 0 评论 -
Leetcode24-找到两个数组中的公共元素(2956)
给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,它们分别含有 n 和 m 个元素。请你计算以下两个数值:统计 0原创 2024-01-17 16:48:09 · 655 阅读 · 0 评论 -
Leetcode23-数组能形成多少数对(2341)
给你一个下标从 0 开始的整数数组 nums。在一步操作中,你可以执行以下步骤:从 nums 选出 两个 相等的 整数从 nums 中移除这两个整数,形成一个 数对请你在 nums 上多次执行此操作直到无法继续执行。返回一个下标从 0 开始、长度为 2 的整数数组 answer 作为答案,其中 answer[0] 是形成的数对数目,answer[1] 是对 nums 尽可能执行上述操作后剩下的整数数目。示例 1:输入:nums = [1,3,2,1,3,2,2]输出:[3,1]原创 2024-01-17 09:06:55 · 439 阅读 · 0 评论 -
Leetcode22-旅行终点站(1436)
给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此恰有一个旅行终点站。示例 1:输入:paths = [[“London”,“New York”],[“New York”,“Lima”],[“Lima”,“Sao Paulo”]]原创 2024-01-16 16:26:24 · 471 阅读 · 0 评论 -
Leetcode21-环和杆(2103)
总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环:第 i 对中的 第一个 字符表示第 i 个环的 颜色(‘R’、‘G’、‘B’)。第 i 对中的 第二个 字符表示第 i 个环的 位置,也就是位于哪根杆上(‘0’ 到 ‘9’)。原创 2024-01-15 16:38:12 · 457 阅读 · 0 评论 -
Leetcode20-唯一摩尔斯密码词(804)
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:‘a’ 对应 “.-” ,‘b’ 对应 “-…” ,‘c’ 对应 “-.-.” ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:给你一个字符串数组 words ,每个单词可以写成每个字母对应摩尔斯密码的组合。例如,“cab” 可以写成 “-.-…–…” ,(即 “-.-.” + “.-” + “-…” 字符串的结合)。我们将这样一个连接过程称作 单词翻译。原创 2024-01-15 14:49:57 · 505 阅读 · 0 评论 -
Leetcode19-差的绝对值为K的数对数目(2006)
给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k。|x| 的值定义为:如果 x >= 0 ,那么值为 x。如果 x < 0 ,那么值为 -x。示例 1:输入:nums = [1,2,2,1], k = 1输出:4输入:nums = [1,3], k = 3输出:0解释:没有任何数对差的绝对值为 3。示例 3:输入:nums = [3,2,1,5,4], k = 2。原创 2024-01-11 16:36:12 · 856 阅读 · 0 评论 -
Leetcode18-算术三元组的数目(2367)
给你一个下标从 0 开始、严格递增 的整数数组 nums 和一个正整数 diff。如果满足下述全部条件,则三元组 (i, j, k) 就是一个 算术三元组 :nums[j] - nums[i] == diff 且返回不同 算术三元组 的数目。示例 1:输入:nums = [0,1,4,6,7,10], diff = 3输出:2解释:(1, 2, 4) 是算术三元组:7 - 4 == 3 且 4 - 1 == 3。原创 2024-01-11 15:53:23 · 718 阅读 · 0 评论 -
Leetcode17-好数对的数目(1512)
给你一个整数数组 nums。如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对。返回好数对的数目。示例 1:输入:nums = [1,2,3,1,1,3]输出:4解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始示例 2:输入:nums = [1,1,1,1]输出:6解释:数组中的每组数字都是好数对示例 3:输入:nums = [1,2,3]输出:0。原创 2024-01-10 16:49:37 · 686 阅读 · 0 评论 -
Leetcode16-有多少小于当前数字的数字(1365)
给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j!= i 且 nums[j] < nums[i]。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释:对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。原创 2024-01-10 14:24:47 · 474 阅读 · 0 评论 -
Leetcode15-最大字符串配对数目(2744)
给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称它们可以匹配:字符串 words[i] 等于 words[j] 的反转字符串。请你返回数组 words 中的 最大 匹配数目。注意,每个字符串最多匹配一次。示例 1:输入:words = [“cd”,“ac”,“dc”,“ca”,“zz”]输出:2输入:words = [“ab”,“ba”,“cc”]输出:1。原创 2024-01-09 16:32:18 · 558 阅读 · 0 评论 -
Leetcode14-判断句子是否为全字母句(1832)
全字母句 指包含英语字母表中每个字母至少一次的句子。给你一个仅由小写英文字母组成的字符串 sentence ,请你判断 sentence 是否为 全字母句。如果是,返回 true;否则,返回 false。示例 1:输入:sentence = “thequickbrownfoxjumpsoverthelazydog”输出:true解释:sentence 包含英语字母表中每个字母至少一次。原创 2024-01-05 14:45:19 · 515 阅读 · 0 评论 -
Leetcode13-解密消息(2325)
给你字符串 key 和 message ,分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下:使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序。将替换表与普通英文字母表对齐,形成对照表。按照对照表 替换 message 中的每个字母。空格 ’ ’ 保持不变。原创 2024-01-05 14:07:04 · 464 阅读 · 0 评论 -
Leetcode12-统一一致字符串的数目(1684)
给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串。请你返回 words 数组中 一致字符串 的数目。示例 1:输入:allowed = “ab”, words = [“ad”,“bd”,“aaab”,“baa”,“badab”]输出:2解释:字符串 “aaab” 和 “baa” 都是一致字符串,因为它们只包含字符 ‘a’ 和 ‘b’。原创 2024-01-04 15:54:08 · 506 阅读 · 0 评论 -
Leetcode11-快乐数(202)
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true;不是,则返回 false。原创 2024-01-03 16:45:04 · 581 阅读 · 0 评论 -
Leetcode10-购买两块巧克力(2706)
给你一个整数数组 prices ,它表示一个商店里若干巧克力的价格。同时给你一个整数 money ,表示你一开始拥有的钱数。你必须购买 恰好 两块巧克力,而且剩余的钱数必须是 非负数。同时你想最小化购买两块巧克力的总花费。请你返回在购买两块巧克力后,最多能剩下多少钱。如果购买任意两块巧克力都超过了你拥有的钱,请你返回 money。注意剩余钱数必须是非负数。示例 1:输入:prices = [1,2,2], money = 3输出:0解释:分别购买价格为 1 和 2 的巧克力。原创 2024-01-03 15:05:23 · 409 阅读 · 0 评论 -
Leetcode9-存在重复元素(217)
给你一个整数数组 nums。如果任一值在数组中出现 至少两次 ,返回 true;如果数组中每个元素互不相同,返回 false。原创 2023-12-29 16:15:47 · 397 阅读 · 0 评论 -
Leetcode8-最常见的单词(819)
给你一个字符串 paragraph 和一个表示禁用词的字符串数组 banned ,返回出现频率最高的非禁用词。题目数据 保证 至少存在一个非禁用词,且答案 唯一。paragraph 中的单词 不区分大小写 ,答案应以 小写 形式返回。示例 1:输入:paragraph = “Bob hit a ball, the hit BALL flew far after it was hit.”, banned = [“hit”]输出:“ball”解释:“hit” 出现了 3 次,但它是禁用词。原创 2023-12-29 15:59:18 · 576 阅读 · 0 评论 -
Leetcode7-库存管理(158)
仓库管理员以数组 stock 形式记录商品库存表。stock[i] 表示商品 id,可能存在重复。请返回库存表中数量大于 stock.length / 2 的商品 id。示例 1:输入: stock = [6, 1, 3, 1, 1, 1]输出: 1限制:给定数组为非空数组,且存在结果数字。原创 2023-12-28 16:06:05 · 631 阅读 · 1 评论 -
Leetcode6-宝石与石头(771)
给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。字母区分大小写,因此 “a” 和 “A” 是不同类型的石头。示例 1:输入:jewels = “aA”, stones = “aAAbbbb”输出:3示例 2:输入:jewels = “z”, stones = “ZZ”输出:0提示:jewels 和 stones 仅由英文字母组成。原创 2023-12-28 15:09:17 · 493 阅读 · 0 评论 -
Leetcode5-在长度2N的数组中找出重复N次的元素(961)
给你一个整数数组 nums ,该数组具有以下属性:nums 包含 n + 1 个 不同的 元素nums 中恰有一个元素重复 n 次找出并返回重复了 n 次的那个元素。示例 1:输入:nums = [1,2,3,3]输出:3示例 2:输入:nums = [2,1,2,5,3,2]输出:2示例 3:输入:nums = [5,1,5,2,5,3,5,4]输出:5。原创 2023-12-27 15:56:00 · 460 阅读 · 0 评论 -
Leetcode4-唯一元素的和(1748)
(1748)给你一个整数数组 nums。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的 和。示例 1:输入:nums = [1,2,3,2]输出:4解释:唯一元素为 [1,3] ,和为 4。示例 2:输入:nums = [1,1,1,1,1]输出:0解释:没有唯一元素,和为 0。示例 3 :输入:nums = [1,2,3,4,5]输出:15解释:唯一元素为 [1,2,3,4,5] ,和为 15。原创 2023-12-27 15:22:15 · 782 阅读 · 0 评论 -
Leetcode3-计数二进制子串(696)
给定一个字符串 s,统计并返回具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是成组连续的。重复出现(不同位置)的子串也要统计它们出现的次数。示例 1:输入:s = “00110011”输出:6解释:6 个子串满足具有相同数量的连续 1 和 0 :“0011”、“01”、“1100”、“10”、“0011” 和 “01”。注意,一些重复出现的子串(不同位置)要统计它们出现的次数。原创 2023-03-06 20:46:07 · 193 阅读 · 0 评论 -
Leetcode2-检查是否所有字符出现次数相同(1941)
给你一个字符串 s ,如果 s 是一个 好 字符串,请你返回 true ,否则请返回 false。如果 s 中出现过的 所有 字符的出现次数 相同 ,那么我们称字符串 s 是 好 字符串。示例 1:输入:s = “abacbc”输出:true解释:s 中出现过的字符为 ‘a’,‘b’ 和 ‘c’。s 中所有字符均出现 2 次。示例 2:输入:s = “aaabb”输出:false解释:s 中出现过的字符为 ‘a’ 和 ‘b’。原创 2023-03-05 23:35:19 · 194 阅读 · 0 评论 -
Leetcode1-两数之和
Leetcode1-l两数之和原创 2022-11-02 15:33:42 · 144 阅读 · 0 评论