LC 795. 区间子数组个数 题目描述这是 LeetCode 上的 795. 区间子数组个数 ,难度为 中等。 给你一个整数数组 nums 和两个整数:left 及 right 。 找出 nums 中连续、非空且其中最大元素在范围 $[left, right]$ 内的子数组,并返回满足条件的子数组的个数。 生成的测试用例保证结果符合 32-bit 整数范围。 示例 1:12345输入:nums = [2,1,4,3], lef 2022-11-24 模拟 单调栈
LC 1742. 盒子中小球的最大数量 题目描述这是 LeetCode 上的 1742. 盒子中小球的最大数量 ,难度为 简单。 你在一家生产小球的玩具厂工作,有 n 个小球,编号从 lowLimit 开始,到 highLimit 结束(包括 lowLimit 和 highLimit ,即 n == highLimit - lowLimit + 1)。另有无限数量的盒子,编号从 1 到 infinity 。 你的工作是将每个小球放入盒子 2022-11-23 哈希表 模拟
LC 878. 第 N 个神奇数字 题目描述这是 LeetCode 上的 878. 第 N 个神奇数字 ,难度为 困难。 一个正整数如果能被 a 或 b 整除,那么它是神奇的。 给定三个整数 n , a , b ,返回第 n 个神奇的数字。因为答案可能很大,所以返回答案 对 $10^9 + 7$ 取模 后的值。 示例 1:123输入:n = 1, a = 2, b = 3输出:2示例 2:123输入:n = 4, a = 2, b 2022-11-22 二分 容斥原理 数学 gcd lcm
LC 808. 分汤 题目描述这是 LeetCode 上的 808. 分汤 ,难度为 中等。 有 A 和 B 两种类型 的汤,一开始每种类型的汤有 n 毫升。 有四种分配操作: 提供 100ml 的 汤A 和 0ml 的 汤B 。 提供 75ml 的 汤A 和 25ml 的 汤B 。 提供 50ml 的 汤A 和 50ml 的 汤B 。 提供 25ml 的 汤A 和 75ml 的 汤B 。 当我们把汤分配给某人之后 2022-11-21 动态规划 数学 线性 DP
LC 799. 香槟塔 题目描述这是 LeetCode 上的 799. 香槟塔 ,难度为 中等。 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个,依次类推到第 100 层,每个玻璃杯 (250ml) 将盛有香槟。 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次类 2022-11-20 动态规划 线性 DP
LC 1732. 找到最高海拔 题目描述这是 LeetCode 上的 1732. 找到最高海拔 ,难度为 简单。 有一个自行车手打算进行一场公路骑行,这条路线总共由 $n + 1$ 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。 给你一个长度为 n 的整数数组 gain,其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差($0 <= i < n$)。请你返回 最高点的海拔 。 示例 1 2022-11-19 模拟
LC 891. 子序列宽度之和 题目描述这是 LeetCode 上的 891. 子序列宽度之和 ,难度为 困难。 一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数数组 nums,返回 nums 的所有非空 子序列 的 宽度之和 。由于答案可能非常大,请返回对 $10^9 + 7$ 取余 后的结果。 子序列 定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组。例如,[3,6,2, 2022-11-18 数学
LC 792. 匹配子序列的单词数 题目描述这是 LeetCode 上的 792. 匹配子序列的单词数 ,难度为 中等。 给定字符串 s 和字符串数组 words, 返回 words[i] 中是 s 的子序列的单词个数 。 字符串的子序列是从原始字符串中生成的新字符串,可以从中删去一些字符(可以是""),而不改变其余字符的相对顺序。 例如, “ace” 是 “abcde” 的子序列。 示例 1:12345输入: 2022-11-17 哈希表 二分
LC 775. 全局倒置与局部倒置 题目描述这是 LeetCode 上的 775. 全局倒置与局部倒置 ,难度为 中等。 给你一个长度为 n 的整数数组 nums,表示由范围 $[0, n - 1]$ 内所有整数组成的一个排列。 全局倒置 的数目等于满足下述条件不同下标对 $(i, j)$ 的数目: $0 <= i < j < n$ $nums[i] > nums[j]$ 局部倒置 的数目等于满足下述条件 2022-11-16 数学 树状数组
LC 1710. 卡车上的最大单元数 题目描述这是 LeetCode 上的 1710. 卡车上的最大单元数 ,难度为 简单。 请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes,其中 $boxTypes[i] = [numberOfBoxes_i, numberOfUnitsPerBox_i]$ : $numberOfBoxes_i$ 是类型 i 的箱子的数量。 $numberOfUnitsPerBox_i$ 是类 2022-11-15 模拟 贪心 排序
LC 805. 数组的均值分割 题目描述这是 LeetCode 上的 805. 数组的均值分割 ,难度为 困难。 给定你一个整数数组 nums。 我们要将 nums 数组中的每个元素移动到 A 数组 或者 B 数组中,使得 A 数组和 B 数组不为空,并且 average(A) == average(B) 。 如果可以完成则返回 true, 否则返回 false。 注意:对于数组 arr, average(arr) 是 arr 2022-11-14 哈希表 二进制枚举 折半搜索
LC 791. 自定义字符串排序 题目描述这是 LeetCode 上的 791. 自定义字符串排序 ,难度为 中等。 给定两个字符串 order 和 s 。 order 的所有单词都是唯一的,并且以前按照一些自定义的顺序排序。 对 s 的字符进行置换,使其与排序的 order 相匹配。 更具体地说,如果在 order 中的字符 x 出现字符 y 之前,那么在排列后的字符串中, x 也应该出现在 y 之前。 返回满足这个性质的 s 2022-11-13 模拟 构造
LC 790. 多米诺和托米诺平铺 题目描述这是 LeetCode 上的 790. 多米诺和托米诺平铺 ,难度为 中等。 有两种形状的瓷砖:一种是 2 x 1 的多米诺形,另一种是形如 "L" 的托米诺形,两种形状都可以旋转。 给定整数 n ,返回可以平铺 2 x n 的面板的方法的数量,返回对 $10^9 + 7$ 取模 的值。 平铺指的是每个正方形都必须有瓷砖覆盖。 两个平铺不同,当且仅当面板上有四个方向上 2022-11-12 动态规划 状态机 DP
LC 1704. 判断字符串的两半是否相似 题目描述这是 LeetCode 上的 1704. 判断字符串的两半是否相似 ,难度为 简单。 给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。 两个字符串 相似 的前提是它们都含有相同数目的元音('a','e','i','o','u','A','E 2022-11-11 模拟
LC 864. 获取所有钥匙的最短路径 题目描述这是 LeetCode 上的 864. 获取所有钥匙的最短路径 ,难度为 困难。 给定一个二维网格 g,其中: '.' 代表一个空房间 '#' 代表一堵墙 '@' 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。 我们不能在网格外面行走,也无法穿过一堵墙。 如果途经一个钥匙,我 2022-11-10 BFS 状态压缩