LC 930. 和相同的二元子数组 题目描述这是 LeetCode 上的 930. 和相同的二元子数组 ,难度为 中等。 给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。 子数组 是数组的一段连续部分。 示例 1:12345678910输入:nums = [1,0,1,0,1], goal = 2输出:4解释:如下面黑体所示,有 4 个满足题目要求的子数组:[1,0,1, 2021-07-08 哈希表 双指针 前缀和
LC 1711. 大餐计数 题目描述这是 LeetCode 上的 1711. 大餐计数 ,难度为 中等。 大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。 你可以搭配 任意 两道餐品做一顿大餐。 给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 $10^9$ + 7 取余。 2021-07-07 哈希表 位运算
LC 1418. 点菜展示表 题目描述这是 LeetCode 上的 1418. 点菜展示表 ,难度为 中等。 给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi],其中 customerNamei是客户的姓名,tableNumberi是客户所在餐桌的桌号,而 foodItemi是客户点的餐品名称。 请你返回该餐厅的 2021-07-06 哈希表 数据结构 红黑树
LC 726. 原子的数量 题目描述这是 LeetCode 上的 726. 原子的数量 ,难度为 困难。 给定一个化学式 formula(作为字符串),返回每种原子的数量。 原子总是以一个大写字母开始,接着跟随0个或任意个小写字母,表示原子的名字。 如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。例如,H2O 和 H2O2 是可行的,但 H1O2 这个表达是不可行的。 两个化学式连在一起是新 2021-07-05 哈希表 模拟 优先队列(堆) 栈 数据结构运用
LC 645. 错误的集合 题目描述这是 LeetCode 上的 645. 错误的集合 ,难度为 简单。 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。 示例 1:12输入: 2021-07-04 哈希表 模拟 数学 桶排序
LC 451. 根据字符出现频率排序 题目描述这是 LeetCode 上的 451. 根据字符出现频率排序 ,难度为 中等。 给定一个字符串,请将字符串里的字符按照出现的频率降序排列。 示例 1:123456789输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现 2021-07-03 哈希表 模拟 优先队列(堆) 桶排序 数组
LC 1833. 雪糕的最大数量 题目描述这是 LeetCode 上的 1833. 雪糕的最大数量 ,难度为 中等。 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑。 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格。 Tony 一共有 coins 现金可以用于消费,他想要买尽可能多的雪糕。 给你价格数组 costs 和现金量 coins,请你计算并返回 2021-07-02 贪心 排序
LC LCP 07. 传递信息 题目描述这是 LeetCode 上的 LCP 07. 传递信息 ,难度为 简单。 小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下: 有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0 每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 不能向 A 传信息)。 每轮信息必须需要传递给另一个 2021-07-01 图论 DFS 图论 BFS 线性 DP 图论搜索
LC 剑指 Offer 37. 序列化二叉树 题目描述这是 LeetCode 上的 剑指 Offer 37. 序列化二叉树 ,难度为 困难。 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为 2021-06-30 二叉树 层序遍历
LC 168. Excel表列名称 题目描述这是 LeetCode 上的 168. Excel表列名称 ,难度为 简单。 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如,123456781 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB ...示例 1:12输入: 1输出: "A"示例 2:12输入: 28输出: &quo 2021-06-29 模拟
LC 1162. 地图分析 题目描述这是 LeetCode 上的 1162. 地图分析 ,难度为 中等。 你现在手里有一份大小为 $N \times N$ 的 网格 $grid$,上面的每个 单元格 都用 $0$ 和 $1$ 标记好了。 其中 $0$ 代表海洋,$1$ 代表陆地,请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的。 我们这里说的距离是「曼哈顿距离」:$(x_0, y_0)$ 和 $(x 2021-06-28 图论 BFS 多源 BFS
LC 815. 公交路线 题目描述这是 LeetCode 上的 815. 公交路线 ,难度为 困难。 给你一个数组 routes ,表示一系列公交线路,其中每个 routes[i] 表示一条公交线路,第 i 辆公交车将会在上面循环行驶。 例如,路线 routes[0] = [1, 5, 7] 表示第 0 辆公交车会一直按序列 1 -> 5 -> 7 -> 1 -> 5 -> 7 -> 2021-06-28 图论 BFS 图论搜索 双向 BFS
LC 909. 蛇梯棋 题目描述这是 LeetCode 上的 909. 蛇梯棋 ,难度为 中等。 给你一个大小为 n x n 的整数矩阵 board ,方格按从 $1$ 到 $n^2$ 编号,编号遵循 转行交替方式 ,从左下角开始 (即,从 board[n - 1][0] 开始)每一行交替方向。 玩家从棋盘上的方格 $1$ (总是在最后一行、第一列)开始出发。 每一回合,玩家需要从当前方格 $curr$ 开始出发,按下述 2021-06-27 图论 BFS
LC 773. 滑动谜题 题目描述这是 LeetCode 上的 773. 滑动谜题 ,难度为 困难。 在一个 2 x 3 的板上(board)有 $5$ 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 $0$ 来表示. 一次移动定义为选择 $0$ 与一个相邻的数字(上下左右)进行交换. 最终当板 board 的结果是 $[[1,2,3],[4,5,0]]$ 谜板被解开。 给出一个谜板的初始状态,返回最少可以通过多少次移动 2021-06-26 BFS 启发式搜索 AStar 算法 最小步数
LC 752. 打开转盘锁 题目描述这是 LeetCode 上的 752. 打开转盘锁 ,难度为 中等。 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,’0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。 锁的初始数字为 ‘0000’ ,一个代表四个拨 2021-06-25 启发式搜索 双向 BFS AStar 算法 IDAStar 算法