首页 > 其他分享 >2022年11月刷题记录

2022年11月刷题记录

时间:2023-01-03 21:59:27浏览次数:57  
标签:11 cn 2022 problems https 字符串 leetcode 刷题

2022年11月1日

leetcode1662. 检查两个字符串数组是否相等

链接地址:https://leetcode.cn/problems/check-if-two-string-arrays-are-equivalent/

题意:

给你两个字符串数组 word1word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false

数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。




2022年11月2日

leetcode1620. 网络信号最好的坐标

链接地址:https://leetcode.cn/problems/coordinate-with-maximum-network-quality/

题意:

给你一个数组 towers 和一个整数 radius 。

数组 towers 中包含一些网络信号塔,其中 towers[i] = [xi, yi, qi] 表示第 i 个网络信号塔的坐标是 (xi, yi) 且信号强度参数为 qi 。所有坐标都是在 X-Y 坐标系内的 整数 坐标。两个坐标之间的距离用 欧几里得距离 计算。

整数 radius 表示一个塔 能到达 的 最远距离 。如果一个坐标跟塔的距离在 radius 以内,那么该塔的信号可以到达该坐标。在这个范围以外信号会很微弱,所以 radius 以外的距离该塔是 不能到达的 。

如果第 i 个塔能到达 (x, y) ,那么该塔在此处的信号为 ⌊qi / (1 + d)⌋ ,其中 d 是塔跟此坐标的距离。一个坐标的 信号强度 是所有 能到达 该坐标的塔的信号强度之和。

请你返回数组 [cx, cy] ,表示 信号强度 最大的 整数 坐标点 (cx, cy) 。如果有多个坐标网络信号一样大,请你返回字典序最小的 非负 坐标。




2022年11月3日

leetcode1668. 最大重复子字符串

链接地址:https://leetcode.cn/problems/maximum-repeating-substring/

题意:

给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word重复值为 k 。单词 word最大重复值 是单词 wordsequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k0

给你一个字符串 sequenceword ,请你返回 最大重复值 k




2022年11月4日

leetcode754. 到达终点数字

链接地址:https://leetcode.cn/problems/reach-a-number/

解题思路:https://leetcode.cn/problems/reach-a-number/solutions/1947254/fen-lei-tao-lun-xiang-xi-zheng-ming-jian-sqj2/

题意:

在一根无限长的数轴上,你站在0的位置。终点在target的位置。

你可以做一些数量的移动 numMoves :

  • 每次你可以选择向左或向右移动。
  • i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。

给定整数 target ,返回 到达目标所需的 最小 移动次数(即最小 numMoves )




2022年11月5日

leetcode1106. 解析布尔表达式

链接地址:https://leetcode.cn/problems/parsing-a-boolean-expression/

题意:

给你一个以字符串形式表述的 布尔表达式(boolean) expression,返回该式的运算结果。

有效的表达式需遵循以下约定:

  • "t",运算结果为 True
  • "f",运算结果为 False
  • "!(expr)",运算过程为对内部表达式 expr 进行逻辑 非的运算(NOT)
  • "&(expr1,expr2,...)",运算过程为对 2 个或以上内部表达式 expr1, expr2, ... 进行逻辑 与的运算(AND)
  • "|(expr1,expr2,...)",运算过程为对 2 个或以上内部表达式 expr1, expr2, ... 进行逻辑 或的运算(OR)



2022年11月6日

leetcode1678. 设计 Goal 解析器

链接地址:https://leetcode.cn/problems/goal-parser-interpretation/description/

题意:

请你设计一个可以解释字符串 commandGoal 解析器command"G""()" 和/或 "(al)" 按某种顺序组成。Goal 解析器会将 "G" 解释为字符串 "G""()" 解释为字符串 "o""(al)" 解释为字符串 "al" 。然后,按原顺序将经解释得到的字符串连接成一个字符串。

给你字符串 command ,返回 Goal 解析器command 的解释结果。




2022年11月7日

leetcode816. 模糊坐标

链接地址:https://leetcode.cn/problems/ambiguous-coordinates/

题意:

我们有一些二维坐标,如 "(1, 3)""(2, 0.5)",然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。

原始的坐标表示法不会存在多余的零,所以不会出现类似于"00", "0.0", "0.00", "1.0", "001", "00.01"或一些其他更小的数来表示坐标。此外,一个小数点前至少存在一个数,所以也不会出现“.1”形式的数字。

最后返回的列表可以是任意顺序的。而且注意返回的两个数字中间(逗号之后)都有一个空格。




2022年11月8日

leetcode1684. 统计一致字符串的数目

链接地址:https://leetcode.cn/problems/count-the-number-of-consistent-strings/

题意:

给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串

请你返回 words 数组中 一致字符串 的数目。




2022年11月9日

leetcode764. 最大加号标志

链接地址:https://leetcode.cn/problems/largest-plus-sign/description/

题意:

求矩阵中联通的最大“加号”

解题思路:

求图最大面积问题,我们可以统一归为DP问题

将4个方向拆解,每个方向能延伸多少是可以传递的,因此可以用dp计算每个方向可以延伸多少,在4个方向中取min即可得到‘+’的最大阶数。




2022年11月10日

leetcode864. 获取所有钥匙的最短路径

链接地址:https://leetcode.cn/problems/shortest-path-to-get-all-keys/

题意:

给定一个二维网格 grid ,其中:

  • '.' 代表一个空房间
  • '#' 代表一堵
  • '@' 是起点
  • 小写字母代表钥匙
  • 大写字母代表锁

我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。我们不能在网格外面行走,也无法穿过一堵墙。如果途经一个钥匙,我们就把它捡起来。除非我们手里有对应的钥匙,否则无法通过锁。

假设 k 为 钥匙/锁 的个数,且满足 1 <= k <= 6,字母表中的前 k 个字母在网格中都有自己对应的一个小写和一个大写字母。换言之,每个锁有唯一对应的钥匙,每个钥匙也有唯一对应的锁。另外,代表钥匙和锁的字母互为大小写并按字母顺序排列。

返回获取所有钥匙所需要的移动的最少次数。如果无法获取所有钥匙,返回 -1

解题思路:https://leetcode.cn/problems/shortest-path-to-get-all-keys/solutions/1959739/huo-qu-suo-you-yao-chi-de-zui-duan-lu-ji-uu5m/




2022年11月11日

leetcode1704. 判断字符串的两半是否相似

链接地址:https://leetcode.cn/problems/determine-if-string-halves-are-alike/

题意:

给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b

两个字符串 相似 的前提是它们都含有相同数目的元音('a''e''i''o''u''A''E''I''O''U')。注意,s 可能同时含有大写和小写字母。

如果 ab 相似,返回 true ;否则,返回 false




2022年11月12日

leetcode790. 多米诺和托米诺平铺

链接地址:https://leetcode.cn/problems/domino-and-tromino-tiling/

题意:

有两种形状的瓷砖:一种是 2 x 1 的多米诺形,另一种是形如 "L" 的托米诺形。两种形状都可以旋转。

给定整数 n ,返回可以平铺 2 x n 的面板的方法的数量。返回对 109 + 7 取模 的值。

平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺不同,当且仅当面板上有四个方向上的相邻单元中的两个,使得恰好有一个平铺有一个瓷砖占据两个正方形。




2022年11月13日

leetcode791. 自定义字符串排序

链接地址:https://leetcode.cn/problems/custom-sort-string/

题意:

给定两个字符串 ordersorder 的所有单词都是 唯一 的,并且以前按照一些自定义的顺序排序。

s 的字符进行置换,使其与排序的 order 相匹配。更具体地说,如果在 order 中的字符 x 出现字符 y 之前,那么在排列后的字符串中, x 也应该出现在 y 之前。

返回 满足这个性质的 s 的任意排列




2022年11月14日

leetcode69. x 的平方根

链接地址:https://leetcode.cn/problems/sqrtx/

题意:

给你一个非负整数 x ,计算并返回 x算术平方根

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5




2022年11月15日

leetcode1710. 卡车上的最大单元数

链接地址:https://leetcode.cn/problems/maximum-units-on-a-truck/

题意:

请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes ,其中 boxTypes[i] = [numberOfBoxesi, numberOfUnitsPerBoxi]

  • numberOfBoxesi 是类型 i 的箱子的数量。
  • numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载的单元数量。

整数 truckSize 表示卡车上可以装载 箱子最大数量 。只要箱子数量不超过 truckSize ,你就可以选择任意箱子装到卡车上。

返回卡车可以装载 单元最大 总数。




2022年11月16日

leetcode775. 全局倒置与局部倒置

链接地址:https://leetcode.cn/problems/global-and-local-inversions/

题意:

给你一个长度为 n 的整数数组 nums ,表示由范围 [0, n - 1] 内所有整数组成的一个排列。

全局倒置 的数目等于满足下述条件不同下标对 (i, j) 的数目:

  • 0 <= i < j < n
  • nums[i] > nums[j]

局部倒置 的数目等于满足下述条件的下标 i 的数目:

  • 0 <= i < n - 1
  • nums[i] > nums[i + 1]

当数组 nums全局倒置 的数量等于 局部倒置 的数量时,返回 true ;否则,返回 false




2022年11月17日

leetcode792. 匹配子序列的单词数

链接地址:https://leetcode.cn/problems/number-of-matching-subsequences/

题意:

给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数

字符串的 子序列 是从原始字符串中生成的新字符串,可以从中删去一些字符(可以是none),而不改变其余字符的相对顺序。

  • 例如, “ace”“abcde” 的子序列。

解题思路:https://leetcode.cn/problems/number-of-matching-subsequences/solutions/1975527/by-lcbin-gwyj/




2022年11月18日

leetcode891. 子序列宽度之和

链接地址:https://leetcode.cn/problems/sum-of-subsequence-widths/

题意:

一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。

给你一个整数数组 nums ,返回 nums 的所有非空 子序列宽度之和 。由于答案可能非常大,请返回对 109 + 7 取余 后的结果。

子序列 定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组。例如,[3,6,2,7] 就是数组 [0,3,1,6,2,2,7] 的一个子序列。

解题思路:

【C++】数学(乘法)、转换思路为:计算每个数的贡献,即在所有子序列中当了多少次”大哥“和”小弟“

  • 假如数组:[2,1,3],因为子序列顺序不会对结果产生影响
  • 比如它的子序列[1], [2], [3], [2,1], [2,3], [1,3], [2,1,3] 跟[1,2,3]的子序列[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]最终结果是一样的
  • 所以我们按照递增排序后讨论,这样每个元素都比它左边大或相等(作为最大值),比它右边小(作为最小值)
  • 那么我们只需要讨论每个元素左右的贡献值,我们不妨拿数字2作为例子,那么它作为最大值贡献了2i次(i=1,排序后),作为最小值贡献了2(n-i-1)次,可以用数学归纳证明(这里略),注:贡献都包含本身统计,结果相减没影响
  • 结果就是每个数贡献值相加sum(2i-2(n-i-1)) * nums[i])



2022年11月19日

leetcode1732. 找到最高海拔

链接地址:https://leetcode.cn/problems/find-the-highest-altitude/

题意:

有一个自行车手打算进行一场公路骑行,这条路线总共由 n + 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。

给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i + 1净海拔高度差0 <= i < n)。请你返回 最高点的海拔




2022年11月20日

leetcode799. 香槟塔

链接地址:https://leetcode.cn/problems/champagne-tower/

题意:

我们把玻璃杯摆成金字塔的形状,其中 第一层1 个玻璃杯, 第二层2 个,依次类推到第 100 层,每个玻璃杯 (250ml) 将盛有香槟。

从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次类推。(当最底层的玻璃杯满了,香槟会流到地板上)

例如,在倾倒一杯香槟后,最顶层的玻璃杯满了。倾倒了两杯香槟后,第二层的两个玻璃杯各自盛放一半的香槟。在倒三杯香槟后,第二层的香槟满了 - 此时总共有三个满的玻璃杯。在倒第四杯后,第三层中间的玻璃杯盛放了一半的香槟,他两边的玻璃杯各自盛放了四分之一的香槟。

现在当倾倒了非负整数杯香槟后,返回第 ij 个玻璃杯所盛放的香槟占玻璃杯容积的比例( ij 都从0开始)。




2022年11月21日

leetcode808. 分汤

链接地址:https://leetcode.cn/problems/soup-servings/

题意:

A 和 B 两种类型 的汤。一开始每种类型的汤有 n 毫升。有四种分配操作:

  1. 提供 100ml汤A0ml汤B
  2. 提供 75ml汤A25ml汤B
  3. 提供 50ml汤A50ml汤B
  4. 提供 25ml汤A75ml汤B

当我们把汤分配给某人之后,汤就没有了。每个回合,我们将从四种概率同为 0.25 的操作中进行分配选择。如果汤的剩余量不足以完成某次操作,我们将尽可能分配。当两种类型的汤都分配完时,停止操作。

注意 不存在先分配 100 ml 汤B 的操作。

需要返回的值: 汤A 先分配完的概率 + 汤A和汤B 同时分配完的概率 / 2。返回值在正确答案 10-5 的范围内将被认为是正确的。

解题思路:

https://leetcode.cn/problems/soup-servings/solutions/1982969/by-lcbin-44pu/




2022年11月22日

leetcode878. 第 N 个神奇数字

链接地址:https://leetcode.cn/problems/nth-magical-number/

题意:

一个正整数如果能被 ab 整除,那么它是神奇的。

给定三个整数 n , a , b ,返回第 n 个神奇的数字。因为答案可能很大,所以返回答案 109 + 7 取模 后的值。




2022年11月23日

leetcode1742. 盒子中小球的最大数量

链接地址:https://leetcode.cn/problems/maximum-number-of-balls-in-a-box/

题意:

你在一家生产小球的玩具厂工作,有 n 个小球,编号从 lowLimit 开始,到 highLimit 结束(包括 lowLimithighLimit ,即 n == highLimit - lowLimit + 1)。另有无限数量的盒子,编号从 1infinity

你的工作是将每个小球放入盒子中,其中盒子的编号应当等于小球编号上每位数字的和。例如,编号 321 的小球应当放入编号 3 + 2 + 1 = 6 的盒子,而编号 10 的小球应当放入编号 1 + 0 = 1 的盒子。

给你两个整数 lowLimithighLimit ,返回放有最多小球的盒子中的小球数量如果有多个盒子都满足放有最多小球,只需返回其中任一盒子的小球数量。




2022年11月24日

leetcode795. 区间子数组个数

链接地址:https://leetcode.cn/problems/number-of-subarrays-with-bounded-maximum/

题意:

给你一个整数数组 nums 和两个整数:leftright 。找出 nums 中连续、非空且其中最大元素在范围 [left, right] 内的子数组,并返回满足条件的子数组的个数。

生成的测试用例保证结果符合 32-bit 整数范围。




2022年11月25日

leetcode809. 情感丰富的文字

链接地址:https://leetcode.cn/problems/expressive-words/

题意:

有时候人们会用重复写一些字母来表示额外的感受,比如 "hello" -> "heeellooo", "hi" -> "hiii"。我们将相邻字母都相同的一串字符定义为相同字母组,例如:"h", "eee", "ll", "ooo"。

对于一个给定的字符串 S ,如果另一个单词能够通过将一些字母组扩张从而使其和 S 相同,我们将这个单词定义为可扩张的(stretchy)。扩张操作定义如下:选择一个字母组(包含字母 c ),然后往其中添加相同的字母 c 使其长度达到 3 或以上。

例如,以 "hello" 为例,我们可以对字母组 "o" 扩张得到 "hellooo",但是无法以同样的方法得到 "helloo" 因为字母组 "oo" 长度小于 3。此外,我们可以进行另一种扩张 "ll" -> "lllll" 以获得 "helllllooo"。如果 s = "helllllooo",那么查询词 "hello" 是可扩张的,因为可以对它执行这两种扩张操作使得 query = "hello" -> "hellooo" -> "helllllooo" = s

输入一组查询单词,输出其中可扩张的单词数量。




2022年11月26日

leetcode3. 无重复字符的最长子串

链接地址:https://leetcode.cn/problems/longest-substring-without-repeating-characters/

题意:

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。




2022年11月27日

leetcode1752. 检查数组是否经排序和轮转得到

链接地址:https://leetcode.cn/problems/check-if-array-is-sorted-and-rotated/

题意:

给你一个数组 numsnums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。

如果 nums 能够由源数组轮转若干位置(包括 0 个位置)得到,则返回 true ;否则,返回 false

源数组中可能存在 重复项

注意:我们称数组 A 在轮转 x 个位置后得到长度相同的数组 B ,当它们满足 A[i] == B[(i+x) % A.length] ,其中 % 为取余运算。




2022年11月28日

leetcode813. 最大平均值和的分组

链接地址:https://leetcode.cn/problems/largest-sum-of-averages/

题意:

给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个相邻的非空子数组 。 分数 由每个子数组内的平均值的总和构成。

注意我们必须使用 nums 数组中的每一个数进行分组,并且分数不一定需要是整数。

返回我们所能得到的最大 分数 是多少。答案误差在 10-6 内被视为是正确的。




2022年11月29日

leetcode1758. 生成交替二进制字符串的最少操作数

链接地址:https://leetcode.cn/problems/minimum-changes-to-make-alternating-binary-string/

题意:

给你一个仅由字符 '0''1' 组成的字符串 s 。一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0'

交替字符串 定义为:如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。例如,字符串 "010" 是交替字符串,而字符串 "0100" 不是。

返回使 s 变成 交替字符串 所需的 最少 操作数。




2022年11月30日

leetcode895. 最大频率栈

链接地址:https://leetcode.cn/problems/maximum-frequency-stack/

题意:

设计一个类似堆栈的数据结构,将元素推入堆栈,并从堆栈中弹出出现频率最高的元素。

实现 FreqStack 类:

  • FreqStack() 构造一个空的堆栈。
  • void push(int val) 将一个整数 val 压入栈顶。
  • int pop() 删除并返回堆栈中出现频率最高的元素。
    • 如果出现频率最高的元素不只一个,则移除并返回最接近栈顶的元素。

标签:11,cn,2022,problems,https,字符串,leetcode,刷题
From: https://www.cnblogs.com/jiamian/p/17017691.html

相关文章

  • 力扣113 路径的总和 返回所有满足条件的路径
    力扣113路径的总和返回所有满足条件的路径题目:给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶......
  • 2014-2018年出版的引用《人月神话》的书(20180611更新)
    《人月神话》于1975年出版,1995年出二十周年版。自出版以来,该书被大量的书籍和文章引用,直到现在热潮不退。UMLChina摘录最近几年(2014-2018)正式出版的英文书籍(有ISBN号)中对《......
  • 每周总结(22/11/5)
    根据下列案例需求描述,回答相关问题:有一个对外营业的会议中心,有各种不同规格的会议室,为用户提供以下服务:1、用户可以按照会议人数、会议时间预订会议室。可以只预订1次,也......
  • 每周总结(22/11/12)
    王S聪想要在海外开拓万D电影的市场,这次他在考虑:怎么拍商业电影才能赚钱?毕竟一些制作成本超过1亿美元的大型电影也会失败。这个问题对电影业来说比以往任何时候都更加......
  • 每日总结(22/11/19)
    校园社团作为高校课外活动的重要组成部分,发展十分迅速,也受到越来越多学生的欢迎,社团规模、数量等都在日益增长,社团活动也更为多样和丰富。然而,大多数高校还没有一个完整成......
  • 《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题
    已经根据最新版本内容更新了在线题库!以下是《软件方法》1-8章中的自测题,答案不直接给出,可访问每套题后面的自测链接或扫二维码自测,做到全对才能知道答案。知识点见《软件方......
  • UMLChina视频哔哩哔哩频道(20200311更新)
    可访问​​https://space.bilibili.com/506513331会不断上传UMLChina制作的公开视频片段......
  • [部分幻灯]11月27日Sparx Systems资深开发谈EA新特性以及模型仿真-UMLChina讲座
    时间北京时间2020年11月27日(周五)19:00-20:00费用不收费专家MilesMa,SparxSystems公司资深开发工程师。他是EA的模型仿真、数据库建模、SysML等功能的关键开发人员。语言中......
  • 2022.12.31周总结
    mongodb全文检索1.mongod--setParametertextSearchEnabled=true开启检索命令2.考虑以下posts集合的文档数据,包含了文章内容(post_text)及标签(tags):{"post_text"......
  • 《软件方法》第9章 分析之分析类图—案例篇Part1(20211114更新)
    鸳鸯扣,宜结不宜解《身似摇红烛影》,词:唐涤生,曲:王粤生,唱:红线女,1954​9.1本书案例介绍9.1.1案例更换《软件方法(上)》以及下册2018年发布的电子版本,使用的案例是“UMLChina系统......