- 博客(125)
- 收藏
- 关注
原创 【Leetcode 2418 】 按身高排序 —— JS的操作
给你一个字符串数组names,和一个由的正整数组成的数组heights。两个数组的长度均为n。对于每个下标inames[i]和heights[i]表示第i个人的名字和身高。请按身高顺序返回对应的名字数组names。Mary 最高,接着是 Emma 和 John。第一个 Bob 最高,然后是 Alice 和第二个 Bob。heights。
2024-09-03 15:57:44 482
原创 【Leetcode 2404 】 现最频繁的偶数元素 —— 哈希表
给你一个整数数组nums,返回出现最频繁的偶数元素。如果存在多个满足条件的元素,只需要返回的一个。如果不存在这样的元素,返回-1。2数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。返回最小的那个,即返回 2。44 是出现最频繁的偶数元素。-1不存在偶数元素。
2024-09-03 15:43:13 260
原创 【Leetcode 2399 】 检查相同字母间的距离 —— 哈希表
给你一个下标从开始的字符串s,该字符串仅由小写英文字母组成,s中的每个字母都出现。另给你一个下标从开始、长度为26的的整数数组distance。字母表中的每个字母按从0到25依次编号(即,'a' -> 0'b' -> 1'c' -> 2, ... ,'z' -> 25在一个字符串中,第i个字母的两次出现之间的字母数量是。如果第i个字母没有在s中出现,那么可以。如果s是一个字符串,返回true;否则,返回false。true。
2024-09-03 09:29:28 549
原创 【Leetcode 2395 】 和相等的子数组 —— 哈希表
给你一个下标从开始的整数数组nums,判断是否存在长度为2的子数组且它们的相等。注意,这两个子数组起始位置的下标必须。如果这样的子数组存在,请返回true,否则返回false。是一个数组中一段连续非空的元素组成的序列。true元素为 [4,2] 和 [2,4] 的子数组有相同的和 6。false没有长度为 2 的两个子数组和相等。true子数组 [nums[0],nums[1]] 和 [nums[1],nums[2]] 的和相等,都为 0。
2024-09-02 16:52:24 287
原创 【Leetcode 2367 】 等差三元组的数目 —— 哈希表与三指针
给你一个下标从开始、的整数数组nums和一个正整数diff。如果满足下述全部条件,则三元组(i, j, k)就是一个i < j < k返回不同的数目。2(1, 2, 4) 是等差三元组:7 - 4 == 3 且 4 - 1 == 3。(2, 4, 5) 是等差三元组:10 - 7 == 3 且 7 - 4 == 3。2(0, 2, 4) 是等差三元组:8 - 6 == 2 且 6 - 4 == 2。(1, 3, 5) 是等差三元组:9 - 7 == 2 且 7 - 5 == 2。
2024-09-02 16:35:55 587
原创 【Leetcode 2363 】 合并相似的物品 —— 哈希表
给你两个二维整数数组items1和items2,表示两个物品集合。每个数组itemsvalueiiweightiiitems请你返回一个二维数组ret,其中weighti是所有价值为valuei物品的。ret应该按价值排序后返回。value = 1 的物品在 items1 中 weight = 1 ,在 items2 中 weight = 5 ,总重量为 1 + 5 = 6。
2024-09-02 14:14:21 492
原创 【Leetcode 2357 】 使数组中所有元素都等于零 —— 哈希表
给你一个非负整数数组nums。xxnumsnumsx返回使nums中所有元素都等于0需要的操作数。3第一步操作:选出 x = 1 ,之后 nums = [0,4,0,2,4]。第二步操作:选出 x = 2 ,之后 nums = [0,2,0,0,2]。第三步操作:选出 x = 2 ,之后 nums = [0,0,0,0,0]。nums = [0]0nums 中的每个元素都已经是 0 ,所以不需要执行任何操作。
2024-09-01 16:44:40 364
原创 【Leetcode 2351 】 第一个出现两次的字母 —— 哈希表
给你一个由小写英文字母组成的字符串s,请你找出并返回第一个出现的字母。ababs"c"字母 'a' 在下标 0 、5 和 6 处出现。字母 'b' 在下标 1 和 4 处出现。字母 'c' 在下标 2 、3 和 7 处出现。字母 'z' 在下标 8 处出现。字母 'c' 是第一个出现两次的字母,因为在所有字母中,'c' 第二次出现的下标是最小的。"d"只有字母 'd' 出现两次,所以返回 'd'。
2024-09-01 16:03:45 463
原创 【Leetcode 2347 】 最好的扑克手牌 —— 哈希表
给你一个整数数组ranks和一个字符数组suit。你有5张扑克牌,第i张牌大小为ranks[i],花色为suits[i]。下述是从好到坏你可能持有的"Flush""Pair"请你返回一个字符串,表示给定的 5 张牌中,你能组成的。返回的字符串需与题目描述相同。"Flush"5 张扑克牌的花色相同,所以返回 "Flush"。第一、二和四张牌组成三张相同大小的扑克牌,所以得到 "Three of a Kind"。
2024-09-01 15:52:14 414
原创 【Leetcode 2341 】 数组能形成多少数对 —— 去重
给你一个下标从开始的整数数组nums。numsnums请你在nums上多次执行此操作直到无法继续执行。返回一个下标从开始、长度为2的整数数组answer作为答案,其中answer[0]是形成的数对数目,answer[1]是对nums尽可能执行上述操作后剩下的整数数目。[3,1]nums[0] 和 nums[3] 形成一个数对,并从 nums 中移除,nums = [3,2,3,2,2]。nums[0] 和 nums[2] 形成一个数对,并从 nums 中移除,nums = [2,2,2]。
2024-08-31 17:33:01 266
原创 【Leetcode 2325 】 解密消息 —— 哈希表
给你字符串key和message,分别表示一个加密密钥和一段加密消息。解密messagekeymessage' ''h' -> 'a''a' -> 'b''p' -> 'c''y' -> 'd''b' -> 'e''o' -> 'f'返回解密后的消息。对照表如上图所示。提取 "ouoer theo" 中每个字母的首次出现可以得到替换表。对照表如上图所示。提取 "" 中每个字母的首次出现可以得到替换表。
2024-08-31 17:11:07 365
原创 【Leetcode 2309 】 兼具大小写的最好英文字母 —— 数组模拟哈希表
给你一个由英文字母组成的字符串s,请你找出并返回s中的英文字母。返回的字母必须为大写形式。如果不存在满足条件的字母,则返回一个空字符串。英文字母的大写和小写形式必须在s中出现。英文字母b比另一个英文字母a的前提是:英文字母表中,b在a之出现。s = "lTcOd"E"字母 'E' 是唯一一个大写和小写形式都出现的字母。s = "aAzFif""R"字母 'R' 是大写和小写形式都出现的最好英文字母。
2024-08-31 17:07:45 290
原创 【Leetcode 2287 】 重排字符形成目标字符串 —— 别看代码更多,实则性能更好
给你两个下标从开始的字符串s和target。你可以从s取出一些字符并将其重排,得到若干新的字符串。从s中取出字符并重新排列,返回可以形成target的副本数。2对于 "code" 的第 1 个副本,选取下标为 4 、5 、6 和 7 的字符。对于 "code" 的第 2 个副本,选取下标为 17 、18 、19 和 20 的字符。形成的字符串分别是 "ecod" 和 "code" ,都可以重排为 "code"。可以形成最多 2 个 "code" 的副本,所以返回 2。1。
2024-08-30 18:59:43 368
原创 【Leetcode 2283 】 判断一个数的数字计数是否等于数位的值—— 数组计数
给你一个下标从开始长度为n的字符串num,它只包含数字。如果对于0
2024-08-30 18:35:23 446
原创 【Leetcode 2273 】 移除字母异位词后的结果数组 —— 三种版本,时间击败100%,空间击败100%
给你一个下标从开始的字符串words,其中words[i]由小写英文字符组成。在一步操作中,需要选出任一下标i,从words中words[i]。其中下标iwords[i]只要可以选出满足条件的下标,就一直执行这个操作。在执行所有操作后,返回words。可以证明,按任意顺序为每步操作选择下标都会得到相同的结果。是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。例如,"dacb"是"abdc"的一个字母异位词。
2024-08-30 18:04:05 920
原创 【Leetcode 2248 】 多个数组求交集 —— 利用哈希表统计次数
给你一个二维整数数组nums,其中nums[i]是由正整数组成的一个非空数组,按返回一个数组,数组中的每个元素在nums中都出现过。nums = [[,1,2,,5],[1,2,],[,5,6]][3,4],1,2,,5,6],在 nums 中每个数组中都出现的数字是 3 和 4 ,所以返回 [3,4]。[]不存在同时出现在 nums[0] 和 nums[1] 的整数,所以返回一个空列表 []。
2024-08-29 17:01:01 203
原创 【Leetcode 2215 】 找出两数组的不同 —— 同时操作两个哈希表
给你两个下标从0开始的整数数组nums1和nums2,请你返回一个长度为2的列表answeranswer[0]nums1nums2answer[1]nums2nums1列表中的整数可以按顺序返回。对于 nums1 ,nums1[1] = 2 出现在 nums2 中下标 0 处,然而 nums1[0] = 1 和 nums1[2] = 3 没有出现在 nums2 中。因此,answer[0] = [1,3]。
2024-08-29 16:57:54 449
原创 【Leetcode 2206 】 将数组划分成相等数对 —— 哈希表与数组模拟哈希表
给你一个整数数组nums,它包含2 * n个整数。你需要将nums划分成n如果可以将nums划分成n个数对,请你返回true,否则返回false。truenums6 / 2 = 3 个数对。nums 可以划分成 (2, 2) ,(3, 3) 和 (2, 2) ,满足所有要求。false无法将 nums 划分成 4 / 2 = 2 个数对且满足所有要求。
2024-08-29 15:33:33 429
原创 【Leetcode 2190 】 数组中紧跟 key 之后出现最频繁的数字 —— 哈希表
给你一个下标从开始的整数数组nums,同时给你一个整数key,它在nums出现过。在nums数组中紧跟着key后面出现的不同整数target的出现次数。换言之,target的出现次数为满足以下条件的i请你返回出现次数的target。测试数据保证出现次数最多的target是唯一的。100对于 target = 100 ,在下标 1 和 4 处出现过 2 次,且都紧跟着 key。没有其他整数在 key 后面紧跟着出现,所以我们返回 100。2。
2024-08-28 22:23:00 289
原创 【Leetcode 2154 】 将找到的值乘以 2 —— 哈希表
给你一个整数数组nums,另给你一个整数original,这是需要在nums中搜索的第一个数字。numsoriginaloriginaloriginaloriginaloriginal返回original的值。24- 3 能在 nums 中找到。3 * 2 = 6。- 6 能在 nums 中找到。6 * 2 = 12。- 12 能在 nums 中找到。- 24 不能在 nums 中找到。因此,返回 24。4- 4 不能在 nums 中找到。因此,返回 4。
2024-08-28 21:47:12 306
原创 【Leetcode 2133 】 检查是否每一行每一列都包含全部整数 —— 双重循环
对一个大小为n x n的矩阵而言,如果其每一行和每一列都包含从1到n的整数(含1和n),则认为该矩阵是一个矩阵。给你一个大小为n x n的整数矩阵matrix,请你判断矩阵是否为一个有效矩阵:如果是,返回true;否则,返回false。true在此例中,n = 3 ,每一行和每一列都包含数字 1、2、3。因此,返回 true。false在此例中,n = 3 ,但第一行和第一列不包含数字 2 和 3。因此,返回 false。
2024-08-28 21:44:42 359
原创 【Leetcode 2103 】 环和杆 —— 二维数组的应用
总计有n个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为0到9的杆上。给你一个长度为2n的字符串rings,表示这n个环在杆上的分布。rings中每两个字符形成一个ii'R''G''B'ii'0''9'例如,"R3G2B1"表示:共有n == 3个环,红色的环在编号为 3 的杆上,绿色的环在编号为 2 的杆上,蓝色的环在编号为 1 的杆上。找出所有集齐环的杆,并返回这种杆的数量。1- 编号 0 的杆上有 3 个环,集齐全部颜色:红、绿、蓝。
2024-08-28 18:59:00 456
原创 【Leetcode 2099 】 找到和最大的长度为 K 的子序列 —— 索引与排序
给你一个整数数组nums和一个整数k。你需要找到nums中长度为k的,且这个子序列的。请你返回一个长度为k的整数子序列。定义为从一个数组里删除一些元素后,不改变剩下元素的顺序得到的数组。[3,3]子序列有最大和:3 + 3 = 6。[-1,3,4]子序列有最大和:-1 + 3 + 4 = 6。[3,4]子序列有最大和:3 + 4 = 7。另一个可行的子序列为 [4, 3]。
2024-08-28 16:12:32 233
原创 【Leetcode 2094 】 找出 3 位偶数 —— 巧妙地跳过循环
给你一个整数数组digits,其中每个元素是一个数字(0 - 9数组中可能存在重复元素。你需要找出满足下述条件且digits例如,给定的digits是[1, 2, 3],整数132和312满足上面列出的全部条件。将找出的所有互不相同的整数按排列,并以数组形式返回。所有满足题目条件的整数都在输出数组中列出。注意,答案数组中不含有或带的整数。同样的数字(0 - 9)在构造整数时可以重复多次,重复次数最多与其在digits中出现的次数一样。
2024-08-27 10:49:06 348
原创 【Leetcode 2085 】 统计出现过一次的公共字符串 —— 单哈希表
给你两个字符串数组words1和words2,请你返回在两个字符串数组中的字符串的数目。2- "leetcode" 在两个数组中都恰好出现一次,计入答案。- "amazing" 在两个数组中都恰好出现一次,计入答案。- "is" 在两个数组中都出现过,但在 words1 中出现了 2 次,不计入答案。- "as" 在 words1 中出现了一次,但是在 words2 中没有出现过,不计入答案。所以,有 2 个字符串在两个数组中都恰好出现了一次。0没有字符串在两个数组中都恰好出现一次。1。
2024-08-27 09:55:27 254
原创 【Leetcode 2068 】 检查两个字符串是否几乎相等 —— 击败100%
如果两个字符串word1和word2中从'a'到'z'每一个字母出现频率之差都3,那么我们称这两个字符串word1和word2。给你两个长度都为n的字符串word1和word2,如果word1和word2,请你返回true,否则返回false。一个字母x的出现指的是它在字符串中出现的次数。false字符串 "aaaa" 中有 4 个 'a' ,但是 "bccb" 中有 0 个 'a'。两者之差为 4 ,大于上限 3。
2024-08-26 18:38:58 483
原创 【Leetcode 2062】 统计字符串中的元音子字符串 —— 双层循环,时间空间执行完胜
是字符串中的一个连续(非空)的字符序列。是由元音('a''e''i''o'和'u')组成的一个子字符串,且必须包含元音。给你一个字符串word,统计并返回word中。2下面列出 word 中的元音子字符串(斜体加粗部分):- "u"- "aeiouu0word 中不含 5 种元音,所以也不会存在元音子字符串。7下面列出 word 中的元音子字符串(斜体加粗部分):- "cuac"- "cac"- "cc"- "cuuac"- "cuac"- "cuc"- "cuac"0。
2024-08-26 18:36:26 343
原创 【Leetcode 2053 】 数组中第 K 个独一无二的字符串 —— 哈希表统计次数
指的是在一个数组中只出现过的字符串。给你一个字符串数组arr和一个整数k,请你返回arr中第k个。如果k个独一无二的字符串,那么返回""。注意,按照字符串在原数组中的找到第k个独一无二字符串。"a"arr 中独一无二字符串包括 "d" 和 "a"。"d" 首先出现,所以它是第 1 个独一无二字符串。"a" 第二个出现,所以它是 2 个独一无二字符串。由于 k == 2 ,返回 "a"。"aaa"arr 中所有字符串都是独一无二的,所以返回第 1 个字符串 "aaa"。""
2024-08-26 18:20:37 282
原创 【Leetcode 2032 】 至少在两个数组中出现的值 —— 哈希表与按位运算符(最全的注解)
2 ,在数组 nums1 和 nums2 中出现过。- 2 ,在数组 nums2 和 nums3 中出现过。- 3 ,在数组 nums1 和 nums2 中出现过。- 1 ,在数组 nums1 和 nums3 中出现过。- 3 ,在全部三个数组中都出现过。不存在至少在两个数组中出现的值。
2024-08-26 16:26:25 543
原创 【Leetcode 2006 】 差的绝对值为 K 的数对数目 —— 哈希表
给你一个整数数组nums和一个整数k,请你返回数对(i, j)的数目,满足i < j且。|x|x >= 0xx < 0-x4差的绝对值为 1 的数对为:- [,2,1]- [,2,,1]- [1,,2,- [1,2,0没有任何数对差的绝对值为 3。3差的绝对值为 2 的数对为:- [,2,,5,4]- [,2,1,,4]- [3,,1,5,
2024-08-26 10:45:31 186
原创 【Leetcode 1995 】 统计特殊四元组 —— 最全的注解
给你一个的整数数组nums,返回满足下述条件的四元组的1满足要求的唯一一个四元组是 (0, 1, 2, 3) 因为 1 + 2 + 3 == 6。0[3,3,6,4,5] 中不存在满足要求的四元组。
2024-08-25 22:41:43 375
原创 【Leetcode 1941 】 检查是否所有字符出现次数相同 —— 数组模拟哈希表
给你一个字符串s,如果s是一个字符串,请你返回true,否则请返回false。如果s中出现过的字符的出现次数,那么我们称字符串s是字符串。trues 中出现过的字符为 'a','b' 和 'c'。s 中所有字符均出现 2 次。falses 中出现过的字符为 'a' 和 'b'。'a' 出现了 3 次,'b' 出现了 2 次,两者出现次数不同。
2024-08-24 15:13:47 290
原创 【Leetcode 1935 】 可以输入的最大单词数 —— 时间、空间 双100%
键盘出现了一些故障,有些字母键无法正常工作。而键盘上所有其他键都能够正常工作。给你一个由若干单词组成的字符串text,单词间由单个空格组成(不含前导和尾随空格);另有一个字符串,由所有已损坏的不同字母键组成,返回你可以使用此键盘完全输入的text中单词的数目。1无法输入 "world" ,因为字母键 'd' 已损坏。1无法输入 "leet" ,因为字母键 'l' 和 't' 已损坏。0无法输入任何单词,因为字母键 'e' 已损坏。
2024-08-24 14:56:30 251
原创 【Leetcode 1897 】重新分配字符使所有字符串都相等 —— 数组模拟哈希表
给你一个字符串数组words(下标计数)。在一步操作中,需先选出两个下标i和j,其中words[i]是一个非空字符串,接着将words[i]中的字符移动到words[j]中的位置上。如果执行任意步操作可以使words中的每个字符串都相等,返回true;否则,返回false。true将'a' 移动到words[1]= "abc" 且 words[2] = "abc"。所有字符串都等于 "abc" ,所以返回true。false执行操作无法使所有字符串都相等。
2024-08-24 14:41:57 186
原创 【Leetcode 1893 】 检查是否区域内所有整数都被覆盖
3 和 4 被第二个区间覆盖。21 没有被任何一个区间覆盖。区间覆盖,那么请你返回。- 2 被第一个区间覆盖。- 5 被第三个区间覆盖。给你一个二维整数数组。
2024-08-24 14:39:03 270
原创 【Leetcode 1876 】 长度为三且各字符不同的子字符串 —— 直接比较
如果一个字符串不含有任何重复字符,我们称这个字符串为字符串。给你一个字符串s,请你返回s中长度为的的数量。注意,如果相同的好子字符串出现多次,每一次都应该被记入答案之中。是一个字符串中连续的字符序列。1总共有 4 个长度为 3 的子字符串:"xyz","yzz","zza" 和 "zaz"。唯一的长度为 3 的好子字符串是 "xyz"。4总共有 7 个长度为 3 的子字符串:"aab","aba","bab","abc","bca","cab" 和 "abc"。
2024-08-24 09:22:46 244
原创 【Leetcode 1832 】 判断句子是否为全字母句 —— 忙忙碌碌哈希表不如一行代码速度快
指包含英语字母表中每个字母至少一次的句子。给你一个仅由小写英文字母组成的字符串sentence,请你判断sentence是否为。如果是,返回true;否则,返回false。truesentence包含英语字母表中每个字母至少一次。false。
2024-08-23 12:50:43 248
原创 【Leetcode 1805 】 字符串中不同整数的数目—— 双指针
给你一个字符串word,该字符串由数字和小写英文字母组成。请你用空格替换每个不是数字的字符。例如,将会变成。"123""34""8"和"34"。返回对word完成替换后形成的整数的数目。只有当两个整数的的十进制表示不同, 才认为这两个整数也不同。word = "abcdef3不同的整数有 "123"、"34" 和 "8"。注意,"34" 只计数一次。code2word = "abc1"1"、"01" 和 "001" 视为同一个整数的十进制表示,因为在比较十进制值时会忽略前导零的存在。
2024-08-23 12:46:29 424
原创 【Leetcode 1796 】 字符串中第二大的数字—— 比较大小值
给你一个混合字符串s,请你返回s中的数字,如果不存在第二大的数字,请你返回-1。由小写英文字母和数字组成。2出现在 s 中的数字包括 [1, 2, 3]。第二大的数字是 2。-1出现在 s 中的数字只包含 [1]。没有第二大的数字。
2024-08-23 11:18:41 173
原创 【Leetcode 1790 】 仅执行一次字符串交换能否使两个字符串相等—— 时间复杂度击败100%,空间复杂度击败100%
给你长度相等的两个字符串s1和s2。一次操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对执行就可以使两个字符串相等,返回true;否则,返回false。true例如,交换 s2 中的第一个和最后一个字符可以得到 "bank"false一次字符串交换无法使两个字符串相等true两个字符串已经相等,所以不需要进行字符串交换false。
2024-08-23 10:51:08 212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人