523-连续的字数组和


523. 连续的子数组和

直接用前缀和和$k$取余来记录前面k的余数的位置,判断是否大于2即可

bool checkSubarraySum(vector<int>& nums, int k) {
  unordered_map<int, int> m;
  int n = nums.size();
  int pre = 0;
  m[0] = -1;
  for (int i; i < n; ++i) {
    int x = nums[i];
    pre = (x + pre) % k;
    if(m.count(pre)) {
      if(i - m[pre] >= 2) return true;
    }else m[pre] = i;
  }
  return false;
}

文章作者: Mug-9
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Mug-9 !
评论
  目录