力扣.——560. 和为 K 的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k的子数组的个数

子数组是数组中元素的连续非空序列。

示例 1:

复制代码
输入:nums = [1,1,1], k = 2
输出:2

示例 2:

复制代码
输入:nums = [1,2,3], k = 3
输出:2

提示:

  • 1 <= nums.length <= 2 * 104
  • -1000 <= nums[i] <= 1000
  • -107 <= k <= 107

本题使用前缀和可以解答~

cpp 复制代码
 int sum = 0; // 全局变量,用于记录和为k的子数组的个数
    int subarraySum(vector<int>& nums, int k) {
        int sumCount = 0; // 用于记录和为k的子数组的个数
        vector<int> sums(nums.size() + 1,0);      // 初始化前缀和数组,大小为nums.size()+1,方便计算
        sums[0] = 0;

        // 计算前缀和
        for (int i = 0; i < nums.size(); i++) {
            sums[i+1] = nums[i] + sums[i];
        }

        for(int i=0;i<nums.size();i++){
            for(int j=i;j<nums.size();j++){
                if(sums[j+1]-sums[i]==k)sum++;
            }
        }
        return sum;
    }

简单的前缀和就可以解决了,当然我看别人还用到了哈希表来处理,我这里就不展示了,感兴趣的可以再研究研究~

相关推荐
ytttr8736 小时前
隐马尔可夫模型(HMM)MATLAB实现范例
开发语言·算法·matlab
AlenTech7 小时前
160. 相交链表 - 力扣(LeetCode)
数据结构·leetcode·链表
点云SLAM7 小时前
凸优化(Convex Optimization)理论(1)
人工智能·算法·slam·数学原理·凸优化·数值优化理论·机器人应用
会周易的程序员7 小时前
多模态AI 基于工业级编译技术的PLC数据结构解析与映射工具
数据结构·c++·人工智能·单例模式·信息可视化·架构
jz_ddk7 小时前
[学习] 卫星导航的码相位与载波相位计算
学习·算法·gps·gnss·北斗
放荡不羁的野指针7 小时前
leetcode150题-动态规划
算法·动态规划
sin_hielo7 小时前
leetcode 1161(BFS)
数据结构·算法·leetcode
一起努力啊~7 小时前
算法刷题-二分查找
java·数据结构·算法
水月wwww8 小时前
【算法设计】动态规划
算法·动态规划
零售ERP菜鸟8 小时前
当业务战略摇摆不定:在变化中锚定不变的IT架构之道
信息可视化·职场和发展·架构·创业创新·学习方法·业界资讯