LC 1480. 一维数组的动态和 题目描述这是 LeetCode 上的 1480. 一维数组的动态和 ,难度为 简单。 给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 示例 1:12345输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+ 2021-08-28 模拟 前缀和
LC 295. 数据流的中位数 题目描述这是 LeetCode 上的 295. 数据流的中位数 ,难度为 困难。 中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如, [2,3,4] 的中位数是 $3$ [2,3] 的中位数是 $(2 + 3) / 2 = 2.5$ 设计一个支持以下两种操作的数据结构: void addNum(int num) - 从数据流中添加一个整数到数据结构中。 do 2021-08-27 优先队列(堆)
LC 881. 救生艇 题目描述这是 LeetCode 上的 881. 救生艇 ,难度为 中等。 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 示例 1:12345输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2 2021-08-26 双指针 贪心
LC 797. 所有可能的路径 题目描述这是 LeetCode 上的 797. 所有可能的路径 ,难度为 中等。 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序) 二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。 译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。 示例 1:12345输 2021-08-25 DFS 回溯算法
LC 787. K 站中转内最便宜的航班 题目描述这是 LeetCode 上的 787. K 站中转内最便宜的航班 ,难度为 中等。 有 n 个城市通过一些航班连接。给你一个数组 flights,其中 $flights[i] = [from_i, to_i, price_i]$ ,表示该航班都从城市 $from_i$ 开始,以价格 $price_i$ 抵达 $to_i$。 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst, 2021-08-24 最短路 Bellman Ford
LC 1646. 获取生成数组中的最大值 题目描述这是 LeetCode 上的 1646. 获取生成数组中的最大值 ,难度为 中等。 给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums : nums[0] = 0 nums[1] = 1 当 2 <= 2 i <= n 时,nums[2 i] = nums[i] 当 2 <= 2 i + 1 <= n 时,nums[2 i + 1] 2021-08-23 模拟 打表
LC 789. 逃脱阻碍者 题目描述这是 LeetCode 上的 789. 逃脱阻碍者 ,难度为 中等。 你在进行一个简化版的吃豆人游戏。你从 [0, 0] 点开始出发,你的目的地是 target = [xtarget, ytarget] 。地图上有一些阻碍者,以数组 ghosts 给出,第 i 个阻碍者从 ghosts[i] = [xi, yi] 出发。所有输入均为 整数坐标 。 每一回合,你和阻碍者们可以同时向东,西,南 2021-08-22 数学
LC 443. 压缩字符串 题目描述这是 LeetCode 上的 443. 压缩字符串 ,难度为 中等。 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中。 否则,需要向 s 追加字符,后跟这一组的长度。 压缩后得到的字符串 s 不应该直接返回 ,需要转储到字符数组 chars 中。需要注意的是,如 2021-08-21 模拟 双指针 字符串
LC 541. 反转字符串 II 题目描述这是 LeetCode 上的 541. 反转字符串 II ,难度为 简单。 给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例 1:123输入:s = "abcdefg", k = 2 2021-08-20 模拟
LC 1622. 奇妙序列 题目描述这是 LeetCode 上的 1629. 按键持续时间最长的键 ,难度为 困难。 请你实现三个 API append,addAll 和 multAll 来实现奇妙序列。 请实现 Fancy 类 : Fancy() 初始化一个空序列对象。 void append(val) 将整数 val 添加在序列末尾。 void addAll(inc) 将所有序列中的现有数值都增加 inc 。 void 2021-08-20 线段树
LC 1769. 移动所有球到每个盒子所需的最小操作数 题目描述这是 LeetCode 上的 1769. 移动所有球到每个盒子所需的最小操作数 ,难度为 中等。 有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes,其中 boxes[i] 的值为 '0' 表示第 i 个盒子是 空 的,而 boxes[i] 的值为 '1' 表示盒子里有 一个 小球。 在一步操作中,你可以将 一个 小球从某个盒子移动到一个与之相邻 2021-08-20 模拟
LC 2031. 1 比 0 多的子数组个数 题目描述这是 LeetCode 上的 2031. 1 比 0 多的子数组个数 ,难度为 中等。 给你一个只包含 $0$ 和 $1$ 的数组 $nums$,请返回 $1$ 的数量 大于 $04 的数量的子数组的个数。 由于答案可能很大,请返回答案对 $10^9 + 7$ 取余 的结果。 一个 子数组 指的是原数组中连续的一个子序列。 示例 1:12345678910输入: nums = [0,1,1 2021-08-20 前缀和 树状数组
LC 264. 丑数 II 题目描述这是 LeetCode 上的 264. 丑数 II ,难度为 中等。 给你一个整数 n ,请你找出并返回第 n 个 丑数 。 丑数 就是只包含质因数 2、3 和 5 的正整数。 示例 1:12345输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:12345输入:n = 1输出:1解释:1 通常被视 2021-08-20 优先队列(堆) 多路归并
LC 297. 二叉树的序列化与反序列化 题目描述这是 LeetCode 上的 297. 二叉树的序列化与反序列化 ,难度为 困难。 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个 2021-08-20 二叉树 层序遍历
LC 517. 超级洗衣机 题目描述这是 LeetCode 上的 517. 超级洗衣机 ,难度为 困难。 假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。 在每一步操作中,你可以选择任意 m (1 <= m <= n) 台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。 给定一个整数数组 machines 代表从左至右每台洗衣机中的衣物数量,请给出能让所 2021-08-20 贪心