当前位置: 首页 > article >正文

力扣.——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

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

 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;
    }

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


http://www.kler.cn/a/441752.html

相关文章:

  • 【Elasticsearch】 Ingest Pipeline `processors`属性详解
  • React 中hooks之 React.memo 和 useMemo用法总结
  • Qt调用ffmpeg库实现简易视频播放器示例
  • 【Prometheus】PromQL进阶用法
  • Swift语言的函数实现
  • Yaml的使用
  • 关于SQL注入的面试题及经验分享
  • 测试框架 —— Playwright Fixture夹具有效利用的建议指南!
  • Springboot和vue前后端交互实现验证码登录
  • 【Leetcode 每日一题 - 扩展】1326. 灌溉花园的最少水龙头数目
  • 如何在 Ubuntu 22.04 上安装 Strapi CMS
  • [SAP ABAP] 序列化与反序列化
  • Javer学习Groovy
  • Chinese-Clip实现以文搜图和以图搜图
  • WPF Combox使用 Text无法选择正确获取CHange后的Text
  • java服务器中,如何判定是该使用单例系统,还是微服务架构,多库分布式,服务分布式,前端分布式
  • 2.Nuxt学习 组件使用和路由跳转相关
  • 关于SAP Router连接不稳定的改良
  • unity 雷达
  • SQL Server 表值函数使用示例
  • 负载均衡oj项目:介绍
  • mybatis的优化和补充
  • vue3修改elementui-plus的默认样式的几种方法
  • 基于Springboot + vue实现的手机商城系统
  • 弹窗组件嵌套弹窗组件问题
  • 基于Spring Boot的停车场管理系统