前缀和算法 算法4
算法题中帮助复习的知识
vector<int > dp( n ,k); n为数组大小 ,k为初始化
哈希表unordered_map<int ,int > hash;
hash.find(k)返回值是迭代器 ,找到k返回其迭代器 没找到返回hash.end()
hash.count(k)返回值是数字 ,找到k返回1 ,没找到返回0.
C++和java中
负数%正数 = 负数
处理手段
(a%k+k)%k 能使不管正负数%正数都为正数
前缀和算法是一种常用的预处理技术,用于高效地计算数组或序列中某个区间的和。
通过预先计算并存储前缀和,可以在常数时间内查询任意区间的和,从而显著提高查询效率
注意:
不一定使用数组存储
hash(unordered_map)可以迅速找到一个数的次数 ,用hash.find()! =hash.end()
或者hash.count != 0
不一定存储的是前缀和 ,也可能是前缀和的余数974. 和可被 K 整除的子数组 - 力扣(LeetCode)
这里要灵活变通.