首页 > 其他分享 >和为k的连续子数组

和为k的连续子数组

时间:2022-08-23 10:04:27浏览次数:62  
标签:count key nums sum dic prefix 连续 数组

方法一、暴力法

方法二、前缀和 + HashMap

求解和的方式往往能够分解成sum-k方式,查找此key是否在该dict中,count累加计数

# prefix sum
nums = [1,1,1,1]
k, count = 2, 0
dic = {0:1}  # 和为key的前缀和有value个
prefix_sum = 0
for i in range(len(nums)):
    prefix_sum += nums[i]
    if prefix_sum - k in dic:
        count += dic[prefix_sum-k]
    if prefix_sum in dic:
        dic[prefix_sum] += 1
    else:
        dic[prefix_sum] = 1
count

 

标签:count,key,nums,sum,dic,prefix,连续,数组
From: https://www.cnblogs.com/demo-deng/p/16615128.html

相关文章

  • 【Go实战基础】数组实战,程序员的基本功
     数组实战,程序员的基本功。实战需求:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。实战思路:......
  • JS数组去重的十种方法
    JS数组去重的十种方法1、利用ES6Set数据类型去重(ES6中最常用)functionunique(arr){returnArray.from(newSet(arr))}vararr=[1,1,'true','true',true,true,1......
  • Java基础语法-数组
    0.IDEA开发工具​ 参见:IDEA工具安装详解.pdf1.数组1.1什么是数组【理解】​ 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2数组定义格式【记忆】......
  • 普通对象转化为数组
    //map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。letcity={beijing:100,shanghai:200,nanjin:300,......
  • PHP 将xml文件解析为数组
    SimpleXML扩展在解析和操作XML文档时非常实用,本文将讨论如何使用php SimpleXML解析xml文件。首先,让我们看一下使用SimpleXML扩展将XML内容转换为数组所需遵循的步骤。......
  • php判断多维数组中是否含有某个值
    在php开发中,我们有时候需要检查PHP多维数组中是否存在某一值Value。在本教程中,我们将演示并描述了如何检查多维数组中是否存在某一值的几种方法。我们将使用以下2种方法来......
  • PHP数组输出为xml的两种常见方法
    很多时候,我们需要将数据以XML格式存储到数据库或文件中,以备后用。为了满足此需求,我们将需要将数据转换为XML并保存XML文件。在本教程中,我们将讨论如何使用PHP将数组转化为x......
  • 【Java基础】求数组的最大值,最小值,和值,平均值
    1.实现int[]arr=newint[10];//赋值for(inti=0;i<arr.length;i++){arr[i]=(int)(Math.random()*90+10);......
  • 【Java基础】二维数组实现杨辉三角
    1.什么是杨辉三角每一行头尾都为1,每个数都等于上面两个数之和arr[3][1]=arr[2][0]+arr[2][1];arr[3][2]=arr[2][1]+arr[2][2];2.实现int[][]arr=new......
  • 如何区分数组和对象???
    1.使用instanceof//instanceof判断对象是否由另一个函数创建console.log([]instanceofArray)//trueconsole.log({}instanceofObject)//true......