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

wordpress图片分享插件下载怀化seo

wordpress图片分享插件下载,怀化seo,网站编程赚钱,中国门户网站排行题目描述 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums [1,1,1], k 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 :数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整…

题目描述

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。
说明 :数组的长度为 [1, 20,000]。
数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subarray-sum-equals-k
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法 1:前缀和

思路

比较直白的想法是,先构建前缀和数组 prefix,计算以 i 结束的子数组的和,然后在这个数组中找到所有满足条件的 [i, j] 区间,也就是 prefix[j] - prefix[i] 等于 K。但这样找得两层循环了,时间复杂度比较高。

有没有只需要遍历一遍数组的方法呢?其实只要算一点点数学就好了:

  • 我们要找的一段区间 [i, j] 需要满足 prefix[j] - prefix[i] == k (i < j)。
  • 也就是当我们在遍历到 j 这个位置的时候,只要往 j 的左边去找到有没有 prefix[i] 等于 prefix[j] - k 就行,满足条件的 prefix[i] 可能有一个或多个哦。
  • 在遍历到 j 之前,我们已经遍历过 i 了 (i < j),所以我们只需要在遍历到 i 的时候用一个哈希表把 prefix[i] 存起来,就能实现 O(1) 时间的查找。

其实我们连 prefix 数组都不需要,因为我们在算出一个前缀和的时候,就已经把它存到哈希表里面去了。所以可以只用一个变量 prefix 来计算前缀和,在遍历 nums 数组的过程中不断更新 prefix,同时检查 map[prefix - k] 是否在之前出现过。

复杂度分析

  • 时间复杂度:$O(n)$, n 为数组长度,只扫描了一次数组。
  • 空间复杂度:$O(n)$, n 为数组长度,使用了一个哈希表来存每个前缀和出现的次数。

代码

JavaScript Code

/*** @param {number[]} nums* @param {number} k* @return {number}*/
var subarraySum = function (nums, k) {const map = {};let count = 0;let prefix = 0;map[prefix] = 1;for (let i = 0; i < nums.length; i++) {prefix += nums[i];if (prefix - k in map) {count += map[prefix - k];}map[prefix] = (map[prefix] || 0) + 1;}return count;
};
http://www.yayakq.cn/news/430565/

相关文章:

  • 衡水做外贸网站建设小程序公司平台开发
  • 选择网站建设公司好广西南宁网站建设哪家好
  • 英文响应式网站建设网站开发后服务费
  • 低价服装网站建设个人网站搭建模拟感想
  • 刷数据网站怎么推广企业策划公关公司
  • 企业网站建设中有哪几个重要点wordpress去除logo
  • 网站地图怎么制作网站开发及维护费用
  • 可做外贸的网站有哪些做网站备案都需要什么东西
  • 020网站系统6网页设计的网站
  • 有专业做网站的吗科技馆里面有什么展品
  • 哪里有网站开发公司番禺龙美村做网站
  • 音响 东莞网站建设技术支持线上电商怎么做
  • 网站建设流程策划书wordpress portal
  • 网站建设作者墙这个模板百度的网站网址
  • 做热点图现在用什么网站深圳pc端网站开发
  • php网站投票源码大型网站建设一般多少钱
  • 电商网站开发面临的技术问题服务器安全
  • 精通网站开发阅读南山建站公司
  • 哪个网站可以做平面兼职python采集数据wordpress
  • 一台主机做两个网站百度灰色关键词代发
  • 帝国网站数据库配置文件建设内部网站
  • 做网站1天转多钱大学生html网页设计期末作品
  • 北京建设注册中心网站达州市建设局网站
  • 免费打广告网站景观规划设计公司
  • 网站建设被骗维护费做设计网站赚钱吗
  • 网站建设和管理维护网络公司网络推广
  • 襄阳网站建设制作费用企业网站推广的线上渠道有哪些?
  • 怎么做网站弄网盟提高工作效率的软件
  • 网站建设记录过程用什么工具建设网站
  • 怎么做像京东一样的网站莱芜金点子广告手机版