自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 790. 多米诺和托米诺平铺

平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺不同,当且仅当面板上有四个方向上的相邻单元中的两个,使得恰好有一个平铺有一个瓷砖占据两个正方形。的多米诺形,另一种是形如 "L" 的托米诺形。两种形状都可以旋转。给定整数 n ,返回可以平铺。有两种形状的瓷砖:一种是。五种不同的方法如上所示。的面板的方法的数量。

2022-11-12 20:21:45 180 1

原创 1704. 判断字符串的两半是否相似

思路:由于判断的前提是含有相同数目的元音,事先给定元音的字符串(包含大小写)。依据输入的长度对半分,挨个判断数目是否相等。a 中有 1 个元音,b 中有 2 个元音。因此,a 和 b 不相似。a 中有 1 个元音,b 也有 1 个元音。所以,a 和 b 相似。注意,元音 o 在 b 中出现两次,记为 2 个。将其拆分成长度相同的两半,前一半为。的前提是它们都含有相同数目的元音(可能同时含有大写和小写字母。给你一个偶数长度的字符串。xt" 且 b = "b。

2022-11-11 11:34:30 206

原创 864. 获取所有钥匙的最短路径

个字母在网格中都有自己对应的一个小写和一个大写字母。换言之,每个锁有唯一对应的钥匙,每个钥匙也有唯一对应的锁。另外,代表钥匙和锁的字母互为大小写并按字母顺序排列。返回获取所有钥匙所需要的移动的最少次数。BFS 求最短路径,需要注意的是,由于这个题同一个位置可以重复访问,加入 visited 的必须是 (位置坐标, 已获得钥匙的分布),state 记录当前收集过的钥匙。如果途经一个钥匙,我们就把它捡起来。除非我们手里有对应的钥匙,否则无法通过锁。目标是获得所有钥匙,而不是打开所有锁。

2022-11-10 21:03:16 150

原创 764. 最大加号标志

我们定义 dp[i][j]表示以(i,j) 为中心的最大加号标志的阶数,答案即为所有 dp[i][j] 的最大值。发现,对于每个 (i,j),其最大加号标志的阶数不会超过其上下左右四个方向上连续的 1 的个数的最小值。因此,我们可以预处理出每个位置上下左右四个方向上连续的 1 的个数,然后遍历所有的 (i,j),求出 dp[i][j] 的最大值即可。在上面的网格中,最大加号标志的阶只能是2。,以及4个从中心向上、向下、向左、向右延伸,长度为。注意,只有加号标志的所有网格要求为。如果未找到加号标志,则返回。

2022-11-09 18:50:44 117

原创 1684. 统计一致字符串的数目

解题思路:用哈希表或数组 sss 记录 allowed 中的字符。然后遍历 words 数组,对于每个字符串 www,判断其是否由 allowed 中的字符组成。字符串 "aaab" 和 "baa" 都是一致字符串,因为它们只包含字符 'a' 和 'b'。字符串 "cc","acd","ac" 和 "d" 是一致字符串。如果一个字符串的每一个字符都在。给你一个由不同字符组成的字符串。中,就称这个字符串是。所有字符串都是一致的。

2022-11-08 19:02:49 80

原创 816. 模糊坐标

原始的坐标表示法不会存在多余的零,所以不会出现类似于"00", "0.0", "0.00", "1.0", "001", "00.01"或一些其他更小的数来表示坐标。此外,一个小数点前至少存在一个数,所以也不会出现“.1”形式的数字。注意到字符串长度不超过 121212,我们直接枚举纵坐标的起始位置,然后分别获取横、纵坐标的所有可能的表示形式,最后将横、纵坐标的所有可能的表示形式组合起来。0.0, 00, 0001 或 00.01 是不被允许的。,然后我们移除所有逗号,小数点和空格,得到一个字符串。

2022-11-07 19:27:54 60

原创 1678. 设计 Goal 解析器

也可以对字符串command进行遍历,对其中的每个字符c:如果是'G'直接加到结果串res中,如果是'(',判断下一个是不是')',若是,将'o'加到结果串中,若不是,将'al'返回到结果串中。然后,按原顺序将经解释得到的字符串连接成一个字符串。Goal 解析器会将。最后连接得到的结果是 "Goal"请你设计一个可以解释字符串。根据题意,只需要将字符串。

2022-11-06 10:38:50 135

原创 1106. 解析布尔表达式

如果 ccc 是右括号 ')',我们将栈中元素依次出栈,直到遇到操作符 '!' 或 '&' 或 '|'。过程中我们用变量 ttt 和 fff 记录出栈字符中 't' 和 'f' 的个数。最后根据出栈字符的个数和操作符计算得到新的字符 't' 或 'f',并将其入栈。遍历完表达式 expression 后,栈中只剩下一个字符,如果是 't',返回 true,否则返回 false。&|" 中的一个,我们直接将其入栈;对于这种表达式解析问题,我们可以使用栈来辅助解决。,返回该式的运算结果。

2022-11-05 22:16:26 117

原创 754. 到达终点数字

找到第一个使 sum = 1 + 2 + ... + k >= target 且 sum - target 为偶数的 k。那么我们就要使前面走的某一步 x 反向,使 sum 变为:sum' = sum - a = target = 1 + 2 + ... - x + ... + k。那么就可以推出 a = 2x = sum - target。所以我们只需要找到第一个使 sum = 1 + 2 + ... + k >= target 且 sum - target 为偶数的 k 即为答案.

2022-11-04 23:29:42 55

原创 1668. 最大重复子字符串

bc" 的子字符串,但 "baba" 不是 "ababc" 的子字符串。"ac" 不是 "ababc" 的子字符串。的一个子字符串,那么单词。"abab" 是 "

2022-11-03 22:04:34 61

原创 1620. 网络信号最好的坐标

由于坐标点的范围是 [0, 50],因此我们可以直接暴力枚举所有的坐标点 (i,j)(i, j)(i,j),计算每个坐标点的信号强度,然后找出信号强度最大的坐标点。时间复杂度 O(n×C2)O(n \times C^2)O(n×C2),其中 nnn 是信号塔的数量,而 CCC 是坐标点的范围大小。以内,那么该塔的信号可以到达该坐标。如果有多个坐标网络信号一样大,请你返回字典序最小的。是塔跟此坐标的距离。如果一个坐标跟塔的距离在。,那么该塔在此处的信号为。该坐标的塔的信号强度之和。个网络信号塔的坐标是。

2022-11-02 20:53:17 55

原创 1662. 检查两个字符串数组是否相等

如果两个数组表示的字符串相同,返回 true;否则,返回 false。输入:word1 = ["abc", "d", "defg"], word2 = ["abcddefg"]输入:word1 = ["ab", "c"], word2 = ["a", "bc"]输入:word1 = ["a", "cb"], word2 = ["ab", "c"]word1 表示的字符串为 "ab" + "c" -> "abc"word2 表示的字符串为 "a" + "bc" -> "abc"解法一:拼接字符串对比。

2022-11-01 21:15:38 68

原创 481. 神奇字符串

s 的前几个元素是 s = "1221121221221121122……如果将 s 中连续的若干 1 和 2 进行分组,可以得到 "1 22 11 2 1 22 1 22 11 2 11 22 ......"。每组中 1 或者 2 的出现次数分别是 "1 2 2 1 1 2 1 2 2 1 2 2 ......"。神奇字符串 s 的神奇之处在于,串联字符串中 '1' 和 '2' 的连续出现次数可以生成该字符串。解释:神奇字符串 s 的前 6 个元素是 “122112”,它包含三个 1,因此返回 3。

2022-10-31 23:03:21 121

原创 784. 字母大小写全排列

给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。输出:["a1b2", "a1B2", "A1b2", "A1B2"]返回 所有可能得到的字符串集合。以任意顺序 返回输出。s 由小写英文字母、大写英文字母和数字组成。输出: ["3z4","3Z4"]输入:s = "a1b2"输入: s = "3z4"

2022-10-30 19:31:29 56

原创 1773. 统计匹配检索规则的物品数量

给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。ruleKey == "color" 且 ruleValue == colori。ruleKey == "type" 且 ruleValue == typei。ruleKey == "name" 且 ruleValue == namei。另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。统计并返回 匹配检索规则的物品数量。

2022-10-29 11:01:39 59

原创 907. 子数组的最小值之和

子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 10^9 + 7。输入:arr = [11,81,94,43,3]输入:arr = [3,1,2,4]

2022-10-28 22:09:41 402

原创 1822. 数组元素积的符号

直接遍历,题目要求返回数组元素乘积的符号,即正数返回 11,负数返回 −1−1, 等于 0则返回 0。给你一个整数数组 nums。令 product 为数组 nums 中所有元素值的乘积。解释:数组中所有值的乘积是 144 ,且 signFunc(144) = 1。输入:nums = [-1,-2,-3,-4,3,2,1]如果 x 是等于 0 ,返回 0。返回 signFunc(product)。如果 x 是负数,返回 -1。如果 x 是正数,返回 1。

2022-10-27 19:34:04 111

原创 862. 和至少为 K 的最短子数组

和至少为 K 的最短子数组

2022-10-26 19:34:50 54

原创 934. 最短的桥

每日一题934 最短的桥

2022-10-25 21:07:04 76

原创 915 分割数组

915 分割数组

2022-10-24 19:16:00 112

原创 1768 交替合并字符串

力扣每日一题打卡

2022-10-23 20:42:24 100

原创 音频人声分离

语音分离:语音和非语音(噪音);人声分离:多个说话者的声音分离。Speaker Separation:输入一段声音序号,输出两段声音序号。目前聚焦在两个说话者声音序号混在一起、单一麦克风的情况下,训练和测试是不同的语者;输入和输出的声音长度是一样的,所以一般不用Seq2Seq模型。一、评估1.Signal-to-noise ratio(SNR)模型的输出和真实语音越接近就代表模型的性能越好;E越小,SNR就无穷大。SNR缺点:每个声音序号当作向量来表示,模型输出和真实语音

2022-03-01 22:29:22 4612

原创 677.键值映射

实现一个 MapSum 类,支持两个方法,insert 和 sum:MapSum() 初始化 MapSum 对象void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。提示:1 <= key.length, prefix.length

2021-11-14 21:33:43 431

原创 375.猜数字大小

我们正在玩一个猜数游戏,游戏规则每当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。如果你花光了钱,就会 输掉游戏 。给你一个特定的数字 n ,返回能够 确保你获胜 的最小现金数,不管我选择那个数字 。示例 1:输入:n = 10输出:16解释:制胜策略如下:数字范围是 [1,10] 。你先猜测数字为 7 。如果这是我选中的数字,你的总费用为 $0 。否则,你需要支付 $7 。如果我的数字更大,则下一步需要猜测的数字范围是 [8,10] 。你可以猜测数字为 9 。

2021-11-12 21:17:47 2457

原创 629 K个逆序对数组

给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数。逆序对的定义如下:对于数组的第i个和第 j个元素,如果满i < j且 a[i] > a[j],则其为一个逆序对;否则不是。由于答案可能很大,只需要返回 答案 mod 109 + 7 的值。示例 1:输入: n = 3, k = 0输出: 1解释:只有数组 [1,2,3] 包含了从1到3的整数并且正好拥有 0 个逆序对。假设现在有n个位置给最大的数字选,那么它放在第一个,就会产

2021-11-11 20:46:24 63

原创 495提莫攻击

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。给你一个 非递减 的整数数组 timeSeri

2021-11-10 20:30:43 217

原创 488. 祖玛游戏

你正在参与祖玛游戏的一个变种。在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 ‘R’、黄色 ‘Y’、蓝色 ‘B’、绿色 ‘G’ 或白色 ‘W’ 。你的手中也有一些彩球。你的目标是 清空 桌面上所有的球。每一回合:从你手上的彩球中选出 任意一颗 ,然后将其插入桌面上那一排球中:两球之间或这一排球的任一端。接着,如果有出现 三个或者三个以上 且 颜色相同 的球相连的话,就把它们移除掉。 如果这种移除操作同样导致出现三个或者三个以上且颜色相同的球相连,则可以继续移除这些球,直

2021-11-09 22:54:26 139

原创 268.消失的数字

有n个数的数组nums,找出[0,n]范围内数组中没有的数字`实例1:from typing import Listclass Solution: def missingNumber(self, nums: List[int]) -> int: n = len(nums) return (n+1)*n//2 - sum(nums)实例2:class Solution: def missingNumber(self, nums: List[int])

2021-11-06 23:38:14 53

原创 367. 有效的完全平方数

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:trueclass Solution: def isPerfectSquare(self, num: int) -> bool: if num == 0: return True if num == 1:

2021-11-04 22:56:05 49

原创 407. 接雨水 II

给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。输入: heightMap = [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]]输出: 4解释: 下雨后,雨水将会被上图蓝色的方块中。总的接雨水量为1+2+1=4。class Solution: def trapRainWater(self, heightMap: List[List[int]]) -> int:

2021-11-03 22:00:03 52

原创 LeetCode题库

Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到糖的最多种类数。class Solution(object):

2021-11-01 22:26:35 118

原创 LeetCode 键盘行

给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 "qwertyuiop" 组成。第二行由字符 "asdfghjkl" 组成。第三行由字符 "zxcvbnm" 组成。from typing import Listclass Solution: def findWords(self, words: List[str]) -> List[str]: res = [] s

2021-10-31 23:34:54 64

原创 只出现一次的数字

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。首先,通过异或操作得出数组中不相同的数,所以我们就知道数的哪些位是不同的。设定一个二进制为1的数字作为mask,从右往左,找到异或值为1的部分,分成两组。from typing import Listclass Solution: def singleNumber(self, nums: List[int]) -> List[int]:

2021-10-30 20:20:23 46

原创 重新排序得到2的幂

重新排序得到2的幂给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。class Solution:def init(self):self.aNum = set()for i in range(32):n = str(2 ** i)self.aNum.add(’’.join(sorted(n)))def reorderedPowerOf2(self, N): m =

2021-10-28 20:54:37 3528

原创 删除无效的括号

from typing import Listclass Solution:def removeInvalidParentheses(self, s:str) -> List[str]:def isValid(s:str)->bool:cnt = 0for c in s:if c == “(”: cnt += 1elif c == “)”: cnt -= 1if cnt < 0: return False # 只用中途cnt出现了负值,你就要终止循环,已经出现非法字符了

2021-10-27 22:24:29 58

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除