沈阳市浑南区城乡建设局网站,利用帝国软件如何做网站,销售网站怎么做的,同城购物网站建设成本1. 题目
给定一个包含非负数的数组和一个目标整数 k#xff0c;编写一个函数来判断该数组是否含有连续的子数组#xff0c;其大小至少为 2#xff0c;总和为 k 的倍数#xff0c;即总和为 n*k#xff0c;其中 n 也是一个整数。
示例 1:
输入: [23,2,4,6,7], k 6
输出: …1. 题目
给定一个包含非负数的数组和一个目标整数 k编写一个函数来判断该数组是否含有连续的子数组其大小至少为 2总和为 k 的倍数即总和为 n*k其中 n 也是一个整数。
示例 1:
输入: [23,2,4,6,7], k 6
输出: True
解释: [2,4] 是一个大小为 2 的子数组并且和为 6。示例 2:
输入: [23,2,6,4,7], k 6
输出: True
解释: [23,2,6,4,7]是大小为 5 的子数组并且和为 42。来源力扣LeetCode 链接https://leetcode-cn.com/problems/continuous-subarray-sum 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题 类似题目 LeetCode 560. 和为K的子数组前缀和差分 LeetCode 862. 和至少为 K 的最短子数组前缀和deque单调栈 LeetCode 974. 和可被 K 整除的子数组哈希map 对前n个数求和每次和对k取余存入哈希表m[sum%k] i 再次找到时表明存在区间和为k的倍数
class Solution {
public:bool checkSubarraySum(vectorint nums, int k) {unordered_mapint,int m;int sum 0;m[0] -1;//如果整个数组和刚好为k也满足for(int i 0; i nums.size(); i){sum nums[i];if(k ! 0)sum sum%k;if(m.find(sum) ! m.end()){if(i-m[sum] 1)return true;}elsem[sum] i;}return false;}
};