
前缀和
文章平均质量分 61
谢蟹蟹猴啊
这个作者很懒,什么都没留下…
展开
-
Leetcode525.连续数组(又是连续之类的题目,结合前缀和)
题目: 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 示例 1: 输入: nums = [0,1] 输出: 2 说明: [0, 1] 是具有相同数量0和1的最长连续子数组。 示例 2: 输入: nums = [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。 思路: 第一个想法就是暴力法搜索,计算数组中所有子集和, 然后记录子集和的下标,一旦子集的长度是子集和两倍,而且子原创 2021-06-03 10:11:52 · 135 阅读 · 0 评论 -
儿童节快乐!1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
题目: 给你一个下标从 0 开始的正整数数组 candiesCount ,其中 candiesCount[i] 表示你拥有的第 i 类糖果的数目。同时给你一个二维数组 queries 。 其中 queries[i] = [favoriteTypei, favoriteDayi, dailyCapi] 。你按照如下规则进行一场游戏: 1.你从第 0 天开始吃糖果。 2.你在吃完 所有 第 i - 1 类糖果之前,不能 吃任何一颗第 i 类糖果。 3.在吃完所有糖果之前,你必须每天 至少 吃 一颗 糖果原创 2021-06-01 12:07:24 · 136 阅读 · 0 评论 -
Leetcode560:和为K的子数组
题目: 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 思路: 这个题目是Leetcode1074:元素和为目标值的子矩阵数量的简化版。之前的题目是二维数组求和子集,现在变成了一维数组求子集。相当于略去了对上下边界的遍历,只对左右进行遍历搜索。 方法1: 就是上述思路展开的代码,前缀和+哈希表,基本和Leetcode1074的哈希表子部分一致。 class Solution { public: int subarraySum(vector<int>&原创 2021-05-30 13:52:32 · 164 阅读 · 0 评论 -
Leetcode1074:元素和为目标值的子矩阵数量(困难!前缀和+哈希表)
题目: 给出矩阵 matrix 和目标值 target,返回元素总和等于目标值的非空子矩阵的数量。 思路: 这道题目和363.矩形区域不超过 K 的最大数值和 、560.和为K的子数组、两数之和 == 有类似的地方。可以先去做这些题目再回来解答本题。 这道题目假设有前缀和==知识的储备,可能会想到用二维前缀和来搜索数组。如何实现? 二维前缀和可以通过嵌套三个循环实现。 ...原创 2021-05-29 20:43:02 · 217 阅读 · 0 评论