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

江苏省义务教育标准化建设网站邮件营销

江苏省义务教育标准化建设网站,邮件营销,绿色食品网站建设可行性,wordpress 媒体库分类1.题目介绍 给定一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 1 < nums.length < 2 * 104-1000 < nums[i] < 1000 -107 < k < 107 意思是&#xff0c;你需要在数组n…

1.题目介绍

        给定一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 

子数组是数组中元素的连续非空序列。

  • 1 <= nums.length <= 2 * 104
  • -1000 <= nums[i] <= 1000
  • -107 <= k <= 107

         意思是,你需要在数组nums中找到所有其中连续的位置,其索引位置对应的数据和为k,

例如:数组[1,2,3,0,2],k为2,那么其中符合要求的序列就是:[2]、[0,2]、[2]。并将符合要求的序列出现的次数返回。

2.解决思路

        要找出数组中所有满足要求的子数组,最通俗的解法是暴力解法,即遍历数组的每一个位置i,并计算该位置到0号索引的过程中是否有某个位置j到i的连续加和的结果为k。但是这种解法需要每次遍历节点的子节点,时间复杂度是O(n²)。我们可以在此基础上进行优化,节约掉每次遍历子节点的过程。所以我们采用前缀和+哈希表的方式优化算法,即遍历数组将每次得出的前缀和记录在哈希表中,前缀和为key,出现次数为value。每次遍历只需要判断哈希表中是否有满足条件的key即可。

        前缀和:数组nums中任何一个位置i,从nums[0]到nums[i]的连续加和。

3.解决思路

        1.定义结果数count、初始化preSume记录每次的前缀和

        2.初始化哈希表,其中key用来记录前缀和preSum的值,value用来记录其出现的次数

        3.在哈希表中提前put一个前缀和为0的情况(用来避免当preSum = k时,前缀和为0的情况还             未遇到,preSum-k找不到0的情况)

        4.遍历数组,让preSum每次对当前数据加和,这样可实现preSum的值一直是当前数组位置               的前缀和。

        5.判断当前哈希表中是否存在preSum-k的key,即是否存在以当前preSum为基准,与哈希表             中某一前缀和的差=k的情况(子数组的和等于k),如果存在,则将count的值加上对应前               缀和出现的次数。

        6.将本次遍历位置的前缀和在哈希表中的value+1,,getOrderDefault可兼顾不存在的情况

        7.返回count       

4.代码展示

public static Integer subarraySum(int[] nums,int k){//定义结果数countint count = 0;//定义前缀和int preSum = 0;//定义哈希表存储前缀和以及出现的次数HashMap<Integer, Integer> preSumCount = new HashMap<>();//初始化预存入一个前缀和为0出现一次的情况preSumCount.put(0,1);//遍历数组for (int num : nums) {//计算每个位置的前缀和preSum += num;//如果哈希表存在前缀和之差为k的键,则将count加上其出现的次数if (preSumCount.containsKey(preSum - k)) {count += preSumCount.get(preSum - k);}//更新该前缀和出现的次数preSumCount.put(preSum, preSumCount.getOrDefault(preSum, 0) + 1);}return count;}

5.执行结果

在leetcode测试用例中平均耗时24ms

 内存分布43.84MB

http://www.dtcms.com/wzjs/465957.html

相关文章:

  • 网站建设费用如何入账百度客服电话人工服务热线电话
  • 下班后做兼职任务网站怎么接广告推广
  • 要做网站找谁帮忙做sem竞价代运营公司
  • 淘宝做问卷的网站好网站推广和网络推广
  • 做网站如何买量seo培训学什么
  • 国内大型网站域名说说seo论坛
  • 青岛网站排名优化网络推广是什么专业
  • 昆山网站优化建设苏州网站制作公司
  • 苹果电脑 做网站广告外链平台
  • 日照网站建设有效果创新营销方式有哪些
  • 合肥房产网站建设英文网站建设
  • 微网站建设包括哪些内容品牌策划公司
  • 网站建站麻烦吗谷歌浏览器下载手机版
  • 精选网站建立 推广 优化免费建立网站
  • 用jsp做网站的体会最近重大新闻
  • 建外贸营销型网站关键词免费
  • 旅游电子商务网络营销是什么seo专业技术培训
  • 重庆的公需科目在哪个网站做怎么联系百度人工客服
  • 有哪些网站做二手房好的百度软件应用市场
  • 网站怎么创建百度推广关键词
  • 成都哪里有网站开发公司上海百度推广官网
  • python好还是wordpressseo免费推广
  • 郑州做网站电话关键词优化网站排名
  • 旅游网站建设的技术可行性东莞建设企业网站
  • 做网站如何计算工资百度浏览器下载安装2023版本
  • 做门窗安装去哪些网站找生意今日竞彩足球最新比赛结果查询
  • 钢铁网站模板微信朋友圈广告在哪里做
  • 安徽省校园网站建设网站建设培训机构
  • 龙华做棋牌网站建设哪家好南宁seo推广优化
  • 日本设计类网站大全微信朋友圈推广