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

leetcode-560-和为 K 的子数组

时间:2022-11-15 11:57:41浏览次数:46  
标签:presums count nums 560 数组 presum leetcode

给你一个整数数组 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

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/subarray-sum-equals-k 

 

题解:

前缀和+哈希表优化

def subArraySum(nums, k):
    presum = count = 0
    length = len(nums)
    presums = {}
    presums[0] = 1

    for i in range(length):
        presum += nums[i]
        if presum - k in presums:
            count += presums[presum - k]
        if presum not in presums:
            presums[presum] = 1
        else:
            presums[presum] += 1

    return count

 

标签:presums,count,nums,560,数组,presum,leetcode
From: https://www.cnblogs.com/hannahlee/p/16891941.html

相关文章

  • 二维数组之稀疏数组
    1packagecom.Lucky.base;23importjava.util.Arrays;45/**6*稀疏数组:记录有效数据7*/8publicclasssparseArray{9publics......
  • Leetcode 347 -- 优先队列的坑
    题目描述前k个高频元素坑点在\(C++\)中,可以在\(Class\)中再定义一个\(Class\)对于优先队列的排序,我们要反过来考虑!例如我们使用\(less<int>()\)排序时,我们......
  • 74.数组map能干什么,会改变原数组吗
    map是处理数据的方法,不会改变原数组,会返回一个新数组;filter也不会改变原数组,会返回新数组;forEach也不会改变原数组,不会返回新数组;reduce不会改变原数组; 是否改......
  • 指针与数组的区别
    内存分配方式有三种:(1)从静态存储区域分配。例如全局变量,static变量,常量字符串。(2)在栈上创建。函数内局部变量的存储单元都可以在栈上创建(3)从堆上分配,亦称动态内存分配。用m......
  • 72.怎么判断数组是数组
    1.使用instanceof  instanceof的作用就是判断该对象是谁的实例,我们也就知道了instanceof是对象运算符。2.静态方法Array.isArray方法 ;  ps:使用typeof......
  • 每日算法题之构建乘积数组
    JZ66构建乘积数组描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1](除A[i]以外的全部元......
  • LeetCode75 level3
    LeetCode75level3第1天191.位1的个数136.只出现一次的数字90.子集II第2天5.最长回文子串49.字母异位词分组28.找出字......
  • LeetCode刷题记录.Day15
    反转字符串中的单词151.反转字符串中的单词-力扣(LeetCode)classSolution{public:voidreverse(string&s,intstart,intend){//反转单词字符串,写法为左闭......
  • 66.有没有碰到过数组响应丢失(问的是ref和reactive的用法,什么情况下用)
    由于vue3使用proxy,对于对象和数组都不能直接整个赋值。  直接赋值丢失了响应性只有push或者根据索引遍历赋值才可以保留reactive数组的响应性 ;可以使用toRefs解决......
  • 二维数组 不确定的元素
    importjava.util.Scanner;publicclassEext{ publicstaticvoidmain(String[]args){ //二维数组 int[][]arr=newint[3][];//只确定一维数组的个数 for......