自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++力扣每日一题-多米诺和托米诺平铺

列出n取1,2,3,4,5,6,7的值进行比较(有个小技巧,对于前面这些正确的返回值直接利用力扣的控制台输入对应的n,直接看“预期结果”即可,不用自己一个一个推),不难发现当n > 3 的时候,res[n] = 2 * res[n - 1] + res[n - 3], 那么思路就很明显了,直接从前到后递推上去就能找到答案。平铺指的是每个正方形都必须有瓷砖覆盖。有两种形状的瓷砖:一种是 2 x 1 的多米诺形,另一种是形如 “L” 的托米诺形。给定整数 n ,返回可以平铺 2 x n 的面板的方法的数量。

2022-11-12 21:19:44 351

原创 C++力扣每日一题-判断字符串的两半是否相似

两个字符串 相似 的前提是它们都含有相同数目的元音(‘a’,‘e’,‘i’,‘o’,‘u’,‘A’,‘E’,‘I’,‘O’,‘U’)。注意,s 可能同时含有大写和小写字母。遍历字符串 s,若字符串前半段的元音个数等于后半段的元音个数,则返回 true,否则返回 false。给你一个偶数长度的字符串 s。将其拆分成长度相同的两半,前一半为 a ,后一半为 b。如果 a 和 b 相似,返回 true;否则,返回 false。

2022-11-11 22:40:00 439

原创 C++力扣每日一题-获取所有钥匙的最短路径

假设 k 为 钥匙/锁 的个数,且满足 1

2022-11-10 23:44:48 266

原创 C++力扣每日一题-最大加号标志

定义 dp[i][j] 表示以 (i,j) 为中心的最大加号标志的阶数,答案即为所有 dp[i][j] 的最大值。因此,可以预处理出每个位置上下左右四个方向上连续的 1 的个数,然后遍历所有的 (i,j),求出 dp[i][j] 的最大值即可。一个 k 阶由 1 组成的 “轴对称”加号标志 具有中心网格 grid[r][c] == 1 ,以及4个从中心向上、向下、向左、向右延伸,长度为 k-1,由 1 组成的臂。mines[i] = [xi, yi]表示 grid[xi][yi] == 0。

2022-11-09 21:11:44 323

原创 C++力扣每日一题

哈希表,一种比较直接的思路是,用哈希表或数组 s 记录 allowed 中的字符。然后遍历 words 数组,对于每个字符串 w,判断其是否由 allowed 中的字符组成。给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串。请你返回 words 数组中 一致字符串 的数目。

2022-11-08 21:09:03 128

原创 C++力扣每日一题-模糊坐标

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

2022-11-07 21:25:51 82

原创 C++力扣每日一题-设计 Goal 解析器

command 由 “G”、“()” 和/或 “(al)” 按某种顺序组成。Goal 解析器会将 “G” 解释为字符串 “G”、“()” 解释为字符串 “o” ,“(al)” 解释为字符串 “al”。然后,按原顺序将经解释得到的字符串连接成一个字符串。如果是 ‘(’,判断下一个字符是否是 ‘)’,若是,将 ‘o’ 添加到结果串中,否则,将 “al” 添加到结果串中。给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。如果是 ‘G’,直接将 c 添加到结果串中;

2022-11-06 23:37:25 319

原创 C++力扣每日一题-解析布尔表达式

”,运算过程为对 2 个或以上内部表达式 expr1, expr2, …)”,运算过程为对 2 个或以上内部表达式 expr1, expr2, …两个栈,一个记录符号,一个记录运算结果,碰到符号则二者都入栈,碰到t/f进行栈顶符号的运算,碰到’)'则弹栈。给你一个以字符串形式表述的 布尔表达式(boolean) expression,返回该式的运算结果。(expr)”,运算过程为对内部表达式 expr 进行逻辑 非的运算(NOT)“f”,运算结果为 False。“t”,运算结果为 True。

2022-11-05 23:54:16 289

原创 C++力扣每日一题-到达终点数字

将 s 一直循环累加,直到满足 s ≥ target 并且 (s - target) \ mod 2 = 0,此时的移动次数 k 就是答案,直接返回。第 i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。定义 s 表示当前所处的位置,用变量 k 记录移动的次数。由于对称性,每次可以选择向左或向右移动,因此,可以将 target 统一取绝对值。在一根无限长的数轴上,你站在0的位置。终点在target的位置。每次你可以选择向左或向右移动。

2022-11-04 23:37:35 137

原创 C++力扣每日一题-最大重复子字符串

给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。直接枚举,注意到字符串长度不超过 100,直接从大到小枚举 word 的重复次数 k,判断 word 重复该次数后是否是 sequence 的子串,是则直接返回当前的重复次数 k。给你一个字符串 sequence 和 word ,请你返回 最大重复值 k。

2022-11-03 23:41:57 383

原创 C++力扣每日一题-网络信号最好的坐标

数组 towers 中包含一些网络信号塔,其中 towers[i] = [xi, yi, qi] 表示第 i 个网络信号塔的坐标是 (xi, yi) 且信号强度参数为 qi。所有坐标都是在 X-Y 坐标系内的 整数 坐标。如果第 i 个塔能到达 (x, y) ,那么该塔在此处的信号为 ⌊qi / (1 + d)⌋ ,其中 d 是塔跟此坐标的距离。暴力枚举,由于坐标点的范围是 [0, 50],因此可以直接暴力枚举所有的坐标点 (i, j),计算每个坐标点的信号强度,然后找出信号强度最大的坐标点。

2022-11-02 22:16:40 96

原创 C++力扣每日一题-检查两个字符串数组是否相等

给你两个字符串数组 word1 和 word2。如果两个数组表示的字符串相同,返回 true;否则,返回 false。字符串拼接,将两个数组中的字符串拼接成两个字符串,然后比较两个字符串是否相等。数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。

2022-11-01 21:47:56 535

原创 C++力扣每日一题-神奇字符串

如果将 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 自身。构造到 s 的长度达到 n 时停止。最后一次构造可能会填入两个数,导致 s 的长度为 n+1,因此最后统计 1 的个数时,应统计 s 的前 n 个数,而不是整个 s。神奇字符串 s 的神奇之处在于,串联字符串中 ‘1’ 和 ‘2’ 的连续出现次数可以生成该字符串。

2022-10-31 22:52:44 229

原创 C++力扣每日一题-字母大小写全排列

转变大小写的方法可以使用位运算实现。对于一个字母,小写形式与大写形式的 ASCII 码之差为 32,因此,我们可以通过将该字母的 ASCII 码与 32 进行异或运算来实现大小写转换。具体地,从左到右遍历字符串 s,对于遍历到的每个字母,可以选择将其转变为大写或小写,然后继续遍历后面的字母。由于 s 中的每个字母都可以转换为大写或小写,因此可以使用 DFS 深度优先搜索的方法,枚举所有可能的情况。给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。

2022-10-30 23:36:48 290

原创 C++力扣每日一题-

由于 ruleKey 只可能是 “type”、“color” 或 “name”,我们可以直接取 ruleKey 的第一个字符来确定 item 的下标 i。然后遍历 items 数组,统计 item[i] == ruleValue 的个数即可。ruleKey == “color” 且 ruleValue == colori。ruleKey == “type” 且 ruleValue == typei。ruleKey == “name” 且 ruleValue == namei。

2022-10-29 23:37:58 500

原创 C++力扣每日一题-子数组的最小值之和

如果枚举所有子数组,再逐个求最小值,显然是行不通的。应该逆向思考这个问题,即求最小值为某个值的区间个数,由于最小值一定在arr中产生,可以遍历每一个值,求出以它为最小值的区间数目。方法是找到左右两边最近的更小值的位置,这样,(left,now]都可以作为起点,[now,right)的都可以作为终点,一乘就可以了。给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 10^9 + 7。

2022-10-28 21:42:53 756

原创 C++力扣每日一题-数组元素积的符号

给你一个整数数组 nums。令 product 为数组 nums 中所有元素值的乘积。返回 signFunc(product)。如果 x 是等于 0 ,返回 0。如果 x 是负数,返回 -1。如果 x 是正数,返回 1。判断负数的个数奇偶即可。

2022-10-27 21:44:52 872

空空如也

空空如也

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

TA关注的人

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