523. 连续的子数组和
class Solution {
public:
bool checkSubarraySum(vector<int>& nums, int k) {
if (nums.size() < 2)
{
return false;
}
unordered_map<int, size_t> map;
map[nums[0] % k] = 0;
for (size_t i = 1; i < nums.size(); ++i)
{
nums[i] += nums[i - 1];
nums[i] %= k;
if (nums[i] == 0)
{
return true;
}
auto found = map.find(nums[i]);
if (found == map.end())
{
map[nums[i]] = i;
}
else
{
if (i - found->second > 1)
{
return true;
}
}
}
return false;
}
};