
顺序扫描数组,并存储每一个位置的sum与k的余数,当余数重复出现时,即产生解;
class Solution {
public:
bool checkSubarraySum(vector<int>& nums, int k) {
unordered_map<int,int> table;
int sum=0;
int flag;
table[0] = -1;
for(int i=0;i<nums.size();i++)
{
sum += nums[i];
if(k==0)
flag=sum;
else
flag= (sum%k);
if(table.find(flag)==table.end())
table[flag]= i;
else
{
if(i-table[flag] > 1)
return true;
}
}
return false;
}
};
本文介绍了一种使用哈希表的方法来检查一个整数数组中是否存在连续的子数组其和为给定的整数K。通过遍历数组并记录每个前缀和与K的模运算结果,可以高效地解决此问题。
393

被折叠的 条评论
为什么被折叠?



