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

谷歌做公司网站需要多少钱天津网站排名提升多少钱

谷歌做公司网站需要多少钱,天津网站排名提升多少钱,哪家公司做网站,天河手机网站建设leetcode 560 思路 前缀和:我们可以利用前缀和的思想来解决这个问题。假设当前遍历到的位置是i,前缀和preSum[i]表示从数组的第一个元素到第i个元素的和。为了找到和为k的子数组,我们需要判断是否存在一个preSum[j],使得preSum[…

leetcode 560
在这里插入图片描述

思路

  1. 前缀和:我们可以利用前缀和的思想来解决这个问题。假设当前遍历到的位置是i,前缀和preSum[i]表示从数组的第一个元素到第i个元素的和。为了找到和为k的子数组,我们需要判断是否存在一个preSum[j],使得preSum[i] - preSum[j] = k,这等价于寻找preSum[i] - k是否在之前的前缀和中出现过

  2. 哈希表存储前缀和的出现次数:我们使用一个哈希表map来存储前缀和的出现次数。这样当我们遍历到当前位置时,可以通过查询哈希表来快速判断是否存在某个之前的前缀和,使得当前前缀和减去该值等于k

关键点:
  • 如果当前前缀和preSum等于k,那么从数组开始到当前位置的子数组就是一个合法的子数组
  • 如果preSum - k在哈希表中出现过,说明从哈希表中对应的preSum位置到当前位置的子数组和为k
    步骤:
    • 初始化:用一个变量preSum来存储当前的前缀和,哈希表map用来记录每个前缀和出现的次数,初始化map为{0: 1},即表示前缀和为0出现过一次(这是为了处理从头到当前索引的子数组和为k的情况
    • 遍历数组,更新preSum,同时查询哈希表中是否存在preSum - k,如果存在,则说明找到了和为k的子数组
    • 更新哈希表中的前缀和preSum

实现

function subarraySum(nums, k) {let preSum = 0, count = 0;const map = new Map();// 为了当preSum = k的时候能在前缀表中找到map.set(0, 1);for (let i = 0; i < nums.length; i++) {preSum+=nums[i]const diff = preSum - k;if(map.has(diff)){count += map.get(diff)}if(map.get(preSum)){map.set(preSum,map.get(preSum)+1)}else{map.set(preSum,1)}}return count;
}
http://www.dtcms.com/wzjs/247915.html

相关文章:

  • 网站开发市场现在怎么样企业邮箱域名
  • 网站建设职位广州市口碑全网推广报价
  • 电影网站怎么做不犯法广州百度快速优化排名
  • 网站建设案例分析题宁波seo网络推广推荐
  • 公司建网站空间网站页面
  • 网站推荐软件中国国家人才培训网官网
  • 网站开发包括什么怎么样做seo
  • 阜阳做网站有吗百度广告搜索引擎
  • 广东省建设工程网站营销公司
  • 网站建设模块需求手机上可以创建网站吗
  • 无代码网站开发平台有哪些免费推广软件 推广帮手
  • wordpress无法开启多站点链接买卖价格
  • 做免费网站需要营业执照吗深圳网络推广优化
  • 美国做旅游网站开封seo推广
  • axure可以做网站吗做了5天游戏推广被抓了
  • 百度如何建网站群在线网站seo诊断
  • 开发门户网站多少钱淘宝客seo推广教程
  • 新闻资讯网站怎么做软文网站模板
  • 企业网站建设一般考虑哪些因素?北京seo排名方法
  • 适合毕设做的简单网站媒体:多地新增感染趋势回落
  • 技术支持 合肥网站建设专门开发小程序的公司
  • 做网站首页多少钱网页seo优化
  • 陕西建设厅执业注册中心网站国际时事新闻
  • 机械 网站源码阿里云服务器
  • 做婚恋网站的开发怎么办网站平台
  • 宠物网站设计模板常用搜索引擎有哪些
  • 对接标准做好门户网站建设搜外seo视频 网络营销免费视频课程
  • 东莞网站建设设计公司代运营服务
  • 怎么拥有自己的网站深圳市住房和建设局
  • 做国外网站需要多少钱上海百度公司地址