力扣560.和为K的子数组

力扣560.和为K的子数组

  • 求前缀和 存入哈希表

    • 遍历所有前缀和 加入哈希表之前先找前面值为 k - s[i]的数量
cpp 复制代码
  class Solution {
  public:
      int subarraySum(vector<int>& nums, int k) {
          int n = nums.size();
          vector<int> s(n+1);
          for(int i=0;i<n;i++) s[i+1] = s[i] + nums[i];
  
          int res=0;
          unordered_map<int,int> cnt;
          for(int sj:s)
          {
              res += cnt[sj-k];
              cnt[sj] ++;
          }
          return res;
      }
  };
相关推荐
Tisfy12 小时前
LeetCode 3637.三段式数组 I:一次遍历(三种实现)
算法·leetcode·题解·模拟·数组·遍历·moines
遨游xyz13 小时前
数据结构-哈希表
算法·哈希算法
dyyx11113 小时前
C++中的过滤器模式
开发语言·c++·算法
lrh12280013 小时前
详解决策树算法:分类任务核心原理、形成流程与剪枝优化
算法·决策树·机器学习
期末考复习中,蓝桥杯都没时间学了13 小时前
力扣刷题15
算法·leetcode·职场和发展
2301_8174973313 小时前
C++中的装饰器模式高级应用
开发语言·c++·算法
m0_5494166613 小时前
C++编译期字符串处理
开发语言·c++·算法
m0_5811241913 小时前
C++中的适配器模式实战
开发语言·c++·算法
A尘埃14 小时前
零售连锁店生鲜品类销量预测——线性回归(Linear Regression)
算法·线性回归·零售
u01092727114 小时前
C++与人工智能框架
开发语言·c++·算法