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

网站 技术ui设计工资

网站 技术,ui设计工资,洛阳生活网,西充县建设路小学网站题目描述 给定一个整数数组和一个整数 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/894843/

相关文章:

  • 绿色风格网站导航网址网站怎么做
  • 广西城乡建设名网站山东省建设部官方网站
  • 网站建设要注意哪些怎么做网站自己当站长
  • 做卷皮网类似网站推荐医疗网站建设
  • 创建网站的流程免备案的网站空间
  • 购物网站开发毕业设计开题报告如何制作企业网站的版式
  • 网站建设有几个文件夹wordpress自定义登录页背景颜色
  • 学校网站建设培训东莞樟木头网站制作
  • 易经网站建设应用网站后台怎么
  • vue做pc网站山东济南网站建设优化
  • 武安市网站建设费用微电影分享网站织梦整站源码
  • 网站图标怎么做的广告设计公司专业报价表
  • 微网站开发视频网站虚拟空间购买
  • 主机屋做淘宝客网站电销助手app
  • 无锡做网站的公司coding.net wordpress
  • 黑色午夜seo知识培训
  • 国家示范校建设网站中国最大的软件外包公司
  • 手机网站建设的教程视频舟山普陀区建设信息网站
  • 网站建设详细过程有关网站备案号规则
  • 威海网站建设哪一家网站维护建设招标
  • 微信公众平台推广网站建网站多少钱一平方
  • 郑州做网站的公司精准客源app
  • 开发什么网站好怎么做网站开发的方案
  • 网站一般用什么语言写网站浏览排名
  • 罗村网站建设绍兴市网站建设
  • 惠州做棋牌网站建设哪家好软件开发定制图片
  • 高端网站建设必去磐石网络站群论坛
  • 什么网站做的产品海报比较多网站发帖功能怎么做
  • 微网站建设市场分析网站项目需求分析
  • 网站上线注意html5在线编辑器