前缀和
MD_
不拼一下 你怎么知道你不会成功!
展开
-
几道用 前缀和+哈希表优化【必要时加入状态压缩】来解决连续子数组的题目小结
文章目录Leetcode 560.和为 K 的子数组问题描述解题报告实现代码Leetcode 1248. 统计「优美子数组」问题描述解题报告实现代码Leetcode 523. 连续的子数组和问题描述解题报告实现代码Leetcode 1124. 表现良好的最长时间段问题描述解题报告实现代码Leetcode 1371. 每个元音包含偶数次的最长子字符串问题描述解题报告实现代码总结参考资料Leetcode 560.和为 K 的子数组问题描述给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的原创 2020-05-20 17:31:16 · 488 阅读 · 0 评论 -
Leetcode 974. 和可被 K 整除的子数组【前缀和+同余定理+负数处理】
文章目录问题描述解题报告实现代码0z参考资料问题描述给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]解题报告这道题和 Leetcode 523. 连续的子数组和【前缀和+同原创 2020-05-18 21:01:00 · 189 阅读 · 0 评论 -
Leetcode 523. 连续的子数组和【前缀和+同余定理】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。示例 1:输入: [23,2,4,6,7], k = 6输出: True解释: [2,4] 是一个大小为 2 的子数组,并且和为 6。解题报告根据同余定理:(a+b)%k==0 意味着 a%k==b%k。有了这个定理,我们不妨从 前缀和 的角度来解决这个问题,子数组和为k的倍数原创 2020-05-18 15:47:39 · 294 阅读 · 0 评论 -
哈希表优化系列【空间换时间】-Leetcode 560.和为 K 的子数组
文章目录问题描述解题报告实现代码参考资料问题描述给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。解题报告从暴力的角度出发,确定起点和终点,可以求出任意区间的和。但每次从起点做加法到终点会存在很多原创 2020-05-15 13:48:30 · 175 阅读 · 0 评论 -
Leetcode 1248. 统计「优美子数组」【记录奇数位置&滑动窗口&前缀和】
文章目录问题描述解题报告记录奇数位置滑动窗口前缀和实现代码记录奇数位置实现滑动窗口实现前缀和+哈希表优化实现参考资料本文在别人的题解【链接列于参考资料中】基础上加上些许自己的理解,若侵权必删。问题描述给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1]原创 2020-05-15 15:22:10 · 243 阅读 · 0 评论