- 标签:
- 【题单】常用数据结构(前缀和/差分/栈/队列/堆/字典树/并查集/树状数组/线段树) (122)
- 【题单】滑动窗口与双指针 (104)
- 【题单】数学算法 (91)
- 【题单】位运算 (54)
- 【题单】图论算法 (48)
- Important (45)
- 【题单】网格图(DFS/BFS/综合应用) (30)
- 面试题 (13)
- LeetCode 热题 100 (13)
- Redis (10)
- 面试经典 150 题 (5)
- LeetCode 周赛 (3)
- 动态规划 (3)
- 前缀和 (2)
- LLM (1)
- 数论 (1)
- 差分 (1)
- 计算机理论 (1)
给你一个字符串 s ,下标从 0 开始 ,且长度为偶数 n 。字符串 恰好 由 n / 2 个开括号 '[' 和 n / 2 个闭括号 ']' 组成。 只有能满足下述所有条件的字符串才能称为 平衡字符串 : • 字符串是一个空字符串,或者 • 字符串可以记作 AB ,其中 A 和 B 都是 平衡字符串 ,或者 • 字符串可以写成 [C] ,其中 C 是一个 平衡字符串 。 你可以交换 任意 两个下标所对应的括号 任意 次数。 返回使 s 变成 平衡字符串 所需要的 最小 交换次数。
在一条无限长的公路上有 n 辆汽车正在行驶。汽车按从左到右的顺序按从 0 到 n - 1 编号,每辆车都在一个 独特的 位置。 给你一个下标从 0 开始的字符串 directions ,长度为 n 。directions[i] 可以是 'L'、'R' 或 'S' 分别表示第 i 辆车是向 左 、向 右 或者 停留 在当前位置。每辆车移动时 速度相同 。 碰撞次数可以按下述方式计算: • 当两辆移动方向 相反 的车相撞时,碰撞次数加 2 。 • 当一辆移动的车和一辆静止的车相撞时,碰撞次数加 1 。 碰撞发生后,涉及的车辆将无法继续移动并停留在碰撞位置。除此之外,汽车不能改变它们的状态或移动方向。 返回在这条道路上发生的 碰撞总次数 。
给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。
给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。
给你一个长桌子,桌子上盘子和蜡烛排成一列。给你一个下标从 0 开始的字符串 s ,它只包含字符 '*' 和 '|' ,其中 '*' 表示一个 盘子 ,'|' 表示一支 蜡烛 。 同时给你一个下标从 0 开始的二维整数数组 queries ,其中 queries[i] = [lefti, righti] 表示 子字符串 s[lefti...righti] (包含左右端点的字符)。对于每个查询,你需要找到 子字符串中 在 两支蜡烛之间 的盘子的 数目 。如果一个盘子在 子字符串中 左边和右边 都 至少有一支蜡烛,那么这个盘子满足在 两支蜡烛之间 。 • 比方说,s = "||**||**|*" ,查询 [3, 8] ,表示的是子字符串 "*||**|" 。子字符串中在两支蜡烛之间的盘子数目为 2 ,子字符串中右边两个盘子在它们左边和右边 都 至少有一支蜡烛。 请你返回一个整数数组 answer ,其中 answer[i] 是第 i 个查询的答案。
给你一个字符串 s ,返回 s 中 长度为 3 的不同回文子序列 的个数。 即便存在多种方法来构建相同的子序列,但相同的子序列只计数一次。 回文 是正着读和反着读一样的字符串。 子序列 是由原字符串删除其中部分字符(也可以不删除)且不改变剩余字符之间相对顺序形成的一个新字符串。 • 例如,"ace" 是 "abcde" 的一个子序列。
给你一个下标从 0 开始的字符串数组 words 。 如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。 • 例如,"abca" 和 "cba" 相似,因为它们都由字符 'a'、'b'、'c' 组成。 • 然而,"abacba" 和 "bcfd" 不相似,因为它们不是相同字符组成的。 请你找出满足字符串 words[i] 和 words[j] 相似的下标对 (i, j) ,并返回下标对的数目,其中 0 <= i < j <= words.length - 1 。
给你一个整数数组 nums 。数组 nums 的 唯一性数组 是一个按元素从小到大排序的数组,包含了 nums 的所有非空 子数组 中不同元素的个数。 换句话说,这是由所有 0 <= i <= j < nums.length 的 distinct(nums[i..j]) 组成的递增数组。 其中,distinct(nums[i..j]) 表示从下标 i 到下标 j 的子数组中不同元素的数量。 返回 nums 唯一性数组 的 中位数 。 注意,数组的 中位数 定义为有序数组的中间元素。如果有两个中间元素,则取值较小的那个
给你一个下标从 0 开始的整数数组 nums 。nums 的一个子数组如果满足以下条件,那么它是 不间断 的: • i,i + 1 ,...,j 表示子数组中的下标。对于所有满足 i <= i1, i2 <= j 的下标对,都有 0 <= |nums[i1] - nums[i2]| <= 2 。 请你返回 不间断 子数组的总数目。 子数组是一个数组中一段连续 非空 的元素序列。
你有 k 个 非递减排列 的整数列表。找到一个 最小 区间,使得 k 个列表中的每个列表至少有一个数包含在其中。 我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区间 [a,b] 比 [c,d] 小。
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: • 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 • 如果 s 中存在这样的子串,我们保证它是唯一的答案。