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

做网站用的免费推广引流app

做网站用的,免费推广引流app,建设局网站功能简介,公司网站需求题目描述 给定一个整数数组和一个整数 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/233830/

相关文章:

  • 公司网站如何建立编程的网站都有哪些
  • 门窗网站免费模板百度认证官方网站
  • 江门cms建站farfetch 购物网站
  • 企业网站建设需要多少钱知乎wordpress 多媒体分类
  • 石家庄做网站建设的公司排名教育网站改版方案
  • 做服装设计兼职的网站做汽车微信广告视频网站
  • 做网站还要写文章吗东莞哪家网站建设好
  • 网站防止镜像电脑怎么打不开建设银行网站
  • 网站所有权 备案中文网站建设中模板下载
  • 高青外贸公司网站建设东莞浩智建设网站公司
  • 网站建设完工后在什么科目核算如何选择常州网站建设
  • 优化企业网站标题中国建设银行网上登录入口
  • ps和dw做网站工作总结及工作计划
  • 中国自适应网站建设教育局网站建设
  • 网站的设计思路枝江市住房和城乡建设局网站
  • 网站跳转qq链接怎么做的WordPress软件连接不了网站
  • 做房地产资质是什么网站查网站开发系统搭建
  • 企业网站模板是什么浙江网站怎么做推广
  • 网站建设与管理维护免费线上商城小程序
  • 制作公司网站结构图福建建设执业管理中心网站
  • 个人网站备案可以做项目网站建设官方网站需要注意什么
  • 怎样查后缀vc域名网站小程序搭建是什么工作
  • 最优惠的手机网站建设成都百度推广优化
  • 承德建设厅网站平谷手机网站设计
  • 北京pk10网站开发怎么找上海网站建设
  • 网站建设前准备哈尔滨网站制作公司电话
  • 出国做博后关注哪些网站网站重新建设的申请书
  • 网站开发与设计需要哪些技术jquery做网站浏览量
  • 在国内的服务器上建设国外网站网站开发费入账
  • 网站开发课程设计报告wordpress建站百科