LC 806. 写字符串需要的行数 题目描述这是 LeetCode 上的 806. 写字符串需要的行数 ,难度为 简单。 我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为 $100$ 个单位,如果我们在写某个字母的时候会使这行超过了 $100$ 个单位,那么我们应该把这个字母写到下一行。 我们给定了一个数组 widths,这个数组 $widths[0]$ 代表 'a' 需要的单位, $widths[ 2022-04-11 模拟
LC 357. 统计各位数字都不同的数字个数 题目描述这是 LeetCode 上的 357. 统计各位数字都不同的数字个数 ,难度为 中等。 给你一个整数 $n$ ,统计并返回各位数字都不同的数字 $x$ 的个数,其中 $0 <= x < 10^n$ 。 示例 1:12345输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。 2022-04-10 数位 DP 容斥原理 数学
LC 2213. 由单个字符重复的最长子字符串 题目描述这是 LeetCode 上的 2213. 由单个字符重复的最长子字符串 ,难度为 困难。 给你一个下标从 $0$ 开始的字符串 s 。另给你一个下标从 $0$ 开始、长度为 $k$ 的字符串 queryCharacters,一个下标从 $0$ 开始、长度也是 $k$ 的整数 下标 数组 queryIndices,这两个都用来描述 $k$ 个查询。 第 $i$ 个查询会将 s 中位于下标 $ 2022-04-10 线段树 区间求和
LC 804. 唯一摩尔斯密码词 题目描述这是 LeetCode 上的 804. 唯一摩尔斯密码词 ,难度为 简单。 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b' 对应 "-..." , 'c' 对应 "-.-.",以此类推。 为了方便 2022-04-10 模拟
LC 780. 到达终点 题目描述这是 LeetCode 上的 780. 到达终点 ,难度为 困难。 给定四个整数 sx,sy,tx 和 ty,如果通过一系列的转换可以从起点 $(sx, sy)$ 到达终点 $(tx, ty)$,则返回 true,否则返回 false。 从点 $(x, y)$ 可以转换到 $(x, x+y)$ 或者 $(x+y, y)$。 示例 1:123456789输入: sx = 1, sy = 1 2022-04-09 数学
LC 429. N 叉树的层序遍历 题目描述这是 LeetCode 上的 429. N 叉树的层序遍历 ,难度为 中等。 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1:123输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例 2:123输入:root = [1 2022-04-07 BFS 树
LC 796. 旋转字符串 题目描述这是 LeetCode 上的 796. 旋转字符串 ,难度为 简单。 给定两个字符串,s 和 goal。如果在若干次旋转操作之后,s 能变成 goal,那么返回 true。 s 的旋转操作就是将 s 最左边的字符移动到最右边。 例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。 示例 1:123输入: s = "ab 2022-04-06 模拟
LC 310. 最小高度树 题目描述这是 LeetCode 上的 310. 最小高度树 ,难度为 中等。 树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。 给你一棵包含 $n$ 个节点的树,标记为 $0$ 到 $n - 1$ 。给定数字 $n$ 和一个有 $n - 1$ 条无向边的 edges 列表(每一个边都是一对标签),其中 $edges[i] = [a_i, b_ 2022-04-05 动态规划 DFS 树形 DP
LC 762. 二进制表示中质数个计算置位 题目描述这是 LeetCode 上的 762. 二进制表示中质数个计算置位 ,难度为 简单。 给你两个整数 left 和 right,在闭区间 $[left, right]$ 范围内,统计并返回计算置位位数为质数的整数个数。 计算置位位数就是二进制表示中 $1$ 的个数。 例如, $21$ 的二进制表示 10101 有 $3$ 个计算置位。 示例 1:12345678910输入:left = 6, 2022-04-05 模拟 位运算
LC 744. 寻找比目标字母大的最小字母 题目描述这是 LeetCode 上的 744. 寻找比目标字母大的最小字母 ,难度为 简单。 给你一个排序后的字符列表 letters,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。 在比较时,字母是依序循环出现的。举个例子: 如果目标字母 target = 'z' 并且字符列表为 letters = ['a&# 2022-04-03 二分
LC 420. 强密码检验器 题目描述这是 LeetCode 上的 420. 强密码检验器 ,难度为 困难。 如果一个密码满足下述所有条件,则认为这个密码是强密码: 由至少 $6$ 个,至多 $20$ 个字符组成。 至少包含一个小写字母,一个大写字母,和一个数字。 同一字符不能连续出现三次 (比如 "...aaa..." 是不允许的, 但是 "...aa...a..." 如果满足其他条 2022-04-01 模拟
LC 1801. 积压订单中的订单总数 题目描述这是 LeetCode 上的 1801. 积压订单中的订单总数 ,难度为 中等。 给你一个二维整数数组 $orders$ ,其中每个 $orders[i] = [price_i, amount_i, orderType_i]$ 表示有 $amount_i$ 笔类型为 $orderType_i$、价格为 $price_i$ 的订单。 订单类型 $orderType_i$ 可以分为两种: $ 2022-04-01 模拟 优先队列(堆) 数据结构
LC 954. 二倍数对数组 题目描述这是 LeetCode 上的 954. 二倍数对数组 ,难度为 中等。 给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个$ 0 <= i < len(arr) / 2$,都有 $arr[2 \times i + 1] = 2 \times arr[2 \times i]$” 时,返回 true;否则,返回 false。 示例 1:123输入: 2022-03-31 哈希表 优先队列(堆) 构造 拓扑排序
LC 728. 自除数 题目描述这是 LeetCode 上的 728. 自除数 ,难度为 简单。 自除数是指可以被它包含的每一位数整除的数。 例如,$128$ 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 自除数不允许包含 $0$ 。 给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 $[left, right]$ 内所有的 自除数 。 2022-03-30 哈希表 模拟 二分 打表
LC 1606. 找到处理最多请求的服务器 题目描述这是 LeetCode 上的 1606. 找到处理最多请求的服务器 ,难度为 困难。 你有 $k$ 个服务器,编号为 $0$ 到 $k-1$ ,它们可以同时处理多个请求组。 每个服务器有无穷的计算能力但是不能同时处理超过一个请求。 请求分配到服务器的规则如下: 第 $i$(序号从 $0$ 开始)个请求到达。 如果所有服务器都已被占据,那么该请求被舍弃(完全不处理)。 如果第 ( i % 2022-03-29 二分 优先队列(堆) 数据结构 红黑树