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

560. 和为 K 的子数组

时间:2023-06-02 16:46:54浏览次数:46  
标签:nums 560 dd int num 数组 presum

思路

难度中等

给你一个整数数组 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:
    def subarraySum(self, nums: List[int], k: int) -> int:
        
        ## 构造前缀和数组
        presum = [0]
        cursm = 0
        for num in nums:
            cursm+=num
            presum.append(cursm)

        ### 前缀和数组中求 num-k 在数组中出现的次数
        cnt = 0
        dd = collections.defaultdict(int)
        for i in range(0,len(presum)):
            num = presum[i]
            if num-k in dd:
                cnt+=dd[num-k]
            dd[num] += 1
        return cnt

 

标签:nums,560,dd,int,num,数组,presum
From: https://www.cnblogs.com/zle1992/p/17452200.html

相关文章

  • Vue修改数组、对象并且触发视图更新的方法以及原理
    一、数组 items:['a','b','c'];//一个普通的数组this.items[1]='x';//修改已有项this.items[3]='d';//新增一项this.item.length=2;//修改数组的长度//一个对象数组msg:[{id:1,selected:true,title:'aaa',},{i......
  • 划分数组专题
    一般采用回溯法思想,但需要将问题进行转化,同时采用动态规划减小时间复杂度1.分割等和子数组2.目标和3.划分k个相等的子集4.三等分......
  • [Python]-numpy模块-反转数组的三种方法
    给定一个一维numpy数组,反转数组的三种方法:切片索引numpy.flipud()函数numpy.flip()函数importnumpyasnpa=np.array([1,2,3,4,5])#切片索引ans1=a[::-1]print(ans1)#[54321]#numpy.flipud()函数ans2=np.flipud(a)print(ans2)#[54321]#n......
  • leetcode 65. 有效数字 66. 寻找两个正序数组的中位数
    leetcode65.有效数字66.寻找两个正序数组的中位数65.有效数字难度困难295有效数字(按顺序)可以分成以下几个部分:一个小数或者整数(可选)一个'e'或'E',后面跟着一个整数小数(按顺序)可以分成以下几个部分:(可选)一个符号字符('+'或'-')下述格式之一:至少一位数字,后面跟着一个......
  • python 中json数据可以以类似数组的方法访问 print(j["age"]["nian"])
    使用Python处理Json数据-猫坚果NutCat-博客园(cnblogs.com)JSON模组的常用方法load/loads:把JSON转换为Python#somejsonsomebody_info='{"name":"WenjieYe","age":75,"nationality":"China"}'#parse......
  • php数组排序原理
    以下是一个使用PHP中的sort函数对数组进行排序的示例代码:$fruits=array("apple","banana","orange");sort($fruits);print_r($fruits);在此示例中,我们使用sort函数对$fruits数组进行升序排序。结果输出为["apple","banana","orange"]。PHP中的数组排序函数通常使用......
  • ESP32 IDF 读取双路AS5600
    白了少年头,空悲切。又有哥们生孩子了。他们有车有房有老婆还有孩子,也不知咋挣来的。搞得我聚会都不想去了。郁闷。没办法,自己只有努力。胸藏万卷凭吞吐,笔有千钧任翕张。前言之前用ESP32驱动两路AS5600没有成功,后面简单梳理了下IIC的逻辑,才反应过来。下面记录一下。ESP32......
  • 算法题——数组(一)
    1、两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。/*建一个hash表,key存放值,value存放下标遍历数组,如果表里存在target-nums[i],则返回下标不存在则把当前的数存到hash表*/cl......
  • C语言数组
    数组概念在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。从内存角度,是一片连续的内存空间数组初始化://在编译时明确指定......
  • 数组的应用以及二维数组
    1.Arrays工具类的使用类的全路径:java.util.Arrays举例:sort()方法作用:升序查询2.求最大值int[]scores=newint[5];intmax=0;System.out.println("请输入5位学员的成绩:");Scannerscanner=newScanner(System.in);for(inti=0;i<scores.length;i++){scores[i]=sc......