LC 396. 旋转函数 题目描述这是 LeetCode 上的 396. 旋转函数 ,难度为 中等。 给定一个长度为 $n$ 的整数数组 $nums$ 。 假设 $arr_k$ 是数组 $nums$ 顺时针旋转 $k$ 个位置后的数组,我们定义 $nums$ 的 旋转函数 F 为: F(k) = 0 * arrk[0] + 1 * arrk[1] + ... + (n - 1) * arrk[n - 1] 返回 F( 2022-04-22 滑动窗口 前缀和
LC 824. 山羊拉丁文 题目描述这是 LeetCode 上的 824. 山羊拉丁文 ,难度为 简单。 给你一个由若干单词组成的句子 sentence,单词间由空格分隔。每个单词仅由大写和小写英文字母组成。 请你将句子转换为 “山羊拉丁文(Goat Latin)”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下: 如果单词以元音开头('a', 'e', & 2022-04-21 模拟
LC 388. 文件的最长绝对路径 题目描述这是 LeetCode 上的 388. 文件的最长绝对路径 ,难度为 中等。 假设有一个同时存储文件和目录的文件系统。下图展示了文件系统的一个示例: 这里将 dir 作为根目录中的唯一目录。dir 包含两个子目录 subdir1 和 subdir2 。 subdir1 包含文件 file1.ext 和子目录 subsubdir1;subdir2 包含子目录 subsubdir2,该子目录 2022-04-20 哈希表 模拟
LC 821. 字符的最短距离 题目描述这是 LeetCode 上的 821. 字符的最短距离 ,难度为 简单。 给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。 返回一个整数数组 answer,其中 $answer.length == s.length$ 且 $answer[i]$ 是 s 中从下标 $i$ 到离它 最近 的字符 c 的 距离 。 两个下标 $i$ 和 $j$ 之间的 距离 为 abs(i 2022-04-19 模拟 BFS
LC 386. 字典序排数 题目描述这是 LeetCode 上的 386. 字典序排数 ,难度为 中等。 给你一个整数 n ,按字典序返回范围 $[1, n]$ 内所有整数。 你必须设计一个时间复杂度为 $O(n)$ 且使用 $O(1)$ 额外空间的算法。 示例 1:123输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:123输入:n = 2输出:[1,2] 提示: $1 & 2022-04-18 DFS 递归 迭代
LC 819. 最常见的单词 题目描述这是 LeetCode 上的 819. 最常见的单词 ,难度为 简单。 给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。 题目保证至少有一个词不在禁用列表中,而且答案唯一。 禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。 示例:1234567891011输入: paragra 2022-04-17 哈希表 模拟
LC 479. 最大回文数乘积 题目描述这是 LeetCode 上的 479. 最大回文数乘积 ,难度为 困难。 给定一个整数 $n$ ,返回 可表示为两个 $n$ 位整数乘积的 最大回文整数 。 因为答案可能非常大,所以返回它对 $1337$ 取余 。 示例 1:12345输入:n = 2输出:987解释:99 x 91 = 9009, 9009 % 1337 = 987示例 2:123输入: n = 1输出: 9 提示: 2022-04-16 数学 枚举
LC 385. 迷你语法分析器 题目描述这是 LeetCode 上的 385. 迷你语法分析器 ,难度为 中等。 给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。 列表中的每个元素只可能是整数或整数嵌套列表 示例 1:12345输入:s = "324",输出:324解释:你应该返回一个 NestedInteger 对象,其中只包含整数值 32 2022-04-14 模拟 栈
LC 2069. 模拟行走机器人 II 题目描述这是 LeetCode 上的 2069. 模拟行走机器人 II ,难度为 中等。 给你一个在 XY 平面上的 width x height 的网格图,左下角 的格子为 $(0, 0)$,右上角的格子为 $(width - 1, height - 1)$ 。网格图中相邻格子为四个基本方向之一("North","East","South&quo 2022-04-14 模拟 脑筋急转弯
LC 1672. 最富有客户的资产总量 题目描述这是 LeetCode 上的 1672. 最富有客户的资产总量 ,难度为 简单。 给你一个 $m * n$ 的整数网格 accounts,其中 $accounts[i][j]$ 是第 $i$ 位客户在第 $j$ 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。 客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。 示例 1:1234567 2022-04-13 模拟
LC 剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器 题目描述这是 LeetCode 上的 剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器 ,难度为 中等。 实现 RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象 bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;否则,返回 false。 bool remov 2022-04-13 哈希表 数据结构
LC 面试题 02.05. 链表求和 题目描述这是 LeetCode 上的 面试题 02.05. 链表求和 ,难度为 中等。 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例:123输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -> 9, 2022-04-13 模拟 链表
LC 902. 最大为 N 的数字组合 题目描述这是 LeetCode 上的 902. 最大为 N 的数字组合 ,难度为 困难。 给定一个按 非递减顺序 排列的数字数组 digits。你可以用任意次数 $digits[i]$ 来写的数字。例如,如果 $digits = [1,3,5]$,我们可以写数字,如 '13', '551', 和 '1351315'。 返回 可以生成的小于或等于给定整 2022-04-13 动态规划 二分 数位 DP
LC 380. O(1) 时间插入、删除和获取随机元素 题目描述这是 LeetCode 上的 380. O(1) 时间插入、删除和获取随机元素 ,难度为 中等。 实现 RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象 bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;否则,返回 false。 bool remove(int val) 当元素 2022-04-12 哈希表 数据结构
LC 1012. 至少有 1 位重复的数字 题目描述这是 LeetCode 上的 1012. 至少有 1 位重复的数字 ,难度为 困难。 给定正整数 $n$,返回在 $[1, n]$ 范围内具有 至少 1 位 重复数字的正整数的个数。 示例 1:12345输入:n = 20输出:1解释:具有至少 1 位重复数字的正数(<= 20)只有 11 。示例 2:12345输入:n = 100输出:10解释:具有至少 1 位重复数字的正数(&l 2022-04-12 动态规划 数位 DP 容斥原理