首页 > 其他分享 >560. 和为 K 的子数组

560. 和为 K 的子数组

时间:2023-12-07 17:05:58浏览次数:30  
标签:示例 560 nums 整数 int 数组 new

给你一个整数数组 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
class Solution {
    public int subarraySum(int[] nums, int k) {
        int n=nums.length;
        int[]sums=new int[n+1];
        for(int i=0;i<nums.length;i++){
            sums[i+1]=sums[i]+nums[i];
        }
        Map<Integer,Integer>map=new HashMap<>();
        int count=0;
        for(int i=0;i<=n;i++){
            count+=map.getOrDefault(sums[i]-k,0);
            map.put(sums[i],map.getOrDefault(sums[i],0)+1);
        }
        return count;
    }
}

标签:示例,560,nums,整数,int,数组,new
From: https://blog.51cto.com/u_16040716/8724365

相关文章

  • 数据结构【动态数组】
    数据结构【动态数组】在堆中申请数组空间,扩容时realloc,注意不可增删改的情况并处理即可。以下代码不一定完全正确。#include<stdio.h>#include<stdlib.h>/***声明动态数组,并提供相关的函数操作*///动态数组结构体typedefstructArray{//动态数组i......
  • 前端歌谣的刷题之路-第一百一十六题-数组去重
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目......
  • 【SpringBootWeb入门-6】请求响应-请求参数-数组集合参数&Json参数&路径参数
    这篇我们接着上一篇的请求参数来讲解另外几个常见参数的接收以及封装:数组集合参数、Json参数、路径参数。数组集合参数1、数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数在Postman接口测试新建测试,获取请求数组参数type。然后新建参数处......
  • 第1章. 动态数组(ArrayList)
    动态数组一、动态数组接口设计//这里可以写一个List接口,然后ArrayList类去实现这个接口,实现接口中的方法。但为了方便起见,直接将这些方法写在类中。//这些方法暂时不添加泛型、和正确的返回值publicclassArrayList{//动态数组的长度privateintsize;......
  • VBA-Excel数组应用
    1)数组创建A类:动态数组Dimarr()  创建一个动态变量数组,不受长度/数据类型受制B类:静态数组Dimarr(5) asstring  创建一个一维数组,下标从0开始,最大下标值为5Dimarr(3,3)asInteger创建一个二维数组,开始arr(0,0),最后一个arr(3,3)Dimarr=array(1,2,3)创建一......
  • 稀疏数组 待完善
    packagearray;importjava.util.Arrays;publicclassArrayDemo08{publicstaticvoidmain(String[]args){//1.创建一个二维数组11*110:没有棋子1;黑棋2:白棋int[][]array1=newint[11][11];//二维数组的行数和列数array1[1][2]......
  • 秦疆的Java课程笔记:58 数组 冒泡排序
    总共有八大排序,其中冒泡排序无疑是较为出名的排序算法之一。冒泡排序的代码相当简单,两层循环,外层冒泡轮数,里层依次比较。当看到嵌套循环,应该立马意识到,这个算法的时间复杂度是\(O(n^2)\)。冒泡排序基本步骤:比较数组中两个相邻元素,如果第一个数比第二个数大,就交换位置......
  • 秦疆的Java课程笔记:59 数组 稀疏数组
    当一个数组中大部分元素都是0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模publicclassArrayDemo1{publicstaticv......
  • 刷题复习(二)数组-双指针
    刷题复习(二)数组-双指针https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/shuang-zhi-fa4bd/1、删除有序数组中的重复项慢指针用于统计不重复项,快指针用于不停前进对比是否有新的不重复项,有的话进行替换classSolution{publicintremoveDuplicates(int[]nums){......
  • 秦疆的Java课程笔记:56 数组 二维数组
    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。秦疆老师表示Java中并不太使用二维以上的多维数组。例如二维数组:inta[][]=newint[2][5],就可以看成是一个两行五列的数组publicclassArrayDemo1{publicstaticv......