力扣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;
      }
  };
相关推荐
梵刹古音11 分钟前
【C语言】 递归函数
c语言·数据结构·算法
yongui4783420 分钟前
混凝土二维随机骨料模型 MATLAB 实现
算法·matlab
酉鬼女又兒26 分钟前
JAVA牛客入门11~20
算法
代码游侠36 分钟前
C语言核心概念复习(二)
c语言·开发语言·数据结构·笔记·学习·算法
XX風1 小时前
2.1_binary_search_tree
算法·计算机视觉
不想写bug呀1 小时前
买卖股票问题
算法·买卖股票问题
-Try hard-1 小时前
完全二叉树、非完全二叉树、哈希表的创建与遍历
开发语言·算法·vim·散列表
you-_ling1 小时前
数据结构:5.哈希表
数据结构·散列表
茉莉玫瑰花茶1 小时前
C++ 17 详细特性解析(4)
开发语言·c++·算法
long3162 小时前
K‘ 未排序数组中的最小/最大元素 |期望线性时间
java·算法·排序算法·springboot·sorting algorithm