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

营销方案模板ppt淮南网站优化

营销方案模板ppt,淮南网站优化,wordpress别名 文章id,网站开发入门教程给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2 示例 2: 输入:nums [1,2,3], k…

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。
子数组是数组中元素的连续非空序列

示例 1:
输入:nums = [1,1,1], k = 2
输出:2

示例 2:
输入:nums = [1,2,3], k = 3
输出:2

提示:
1 <= nums.length <= 2 ∗ 10 4 2 * 10^4 2104
-1000 <= nums[i] <= 1000
− 10 7 -10^7 107 <= k <= 10 7 10^7 107


知识点:
数组、哈希表、前缀和


解:
前缀和:s[0]=0, s[i+1]=nums[0]+nums[1]+⋯+nums[i]

题目要求求解有多少个子数组(元素是连续的,原数组也是无序的,并可能出现负值),这就无法使用滑动窗口进行求解,因此考虑前缀和

核心思想:目标是nums[j]-nums[i]=k,i<j。这可通过二重循环暴力求解,但为了考虑复杂度,将目标改为:nums[i]=nums[j]-k。

这里使用先后两个循环:
①第一个循环:计算数组的每个位置上的前缀和(这里要考虑下标0的前缀和=0,因此数组sum的大小=n+1)
②第二个循环:遍历每个前缀和,判断在这个前缀和所对应数组下标的左边,有多少个前缀和=差值nums[j]-k。这里用到一个HashMap。

这里以一个例子进行辅助说明。
令nums=[1,1,-1,1,-1]。
①通过第一个循环,得到n+1个位置上的前缀和:
i=0时,sum[1]=sum[0]+nums[0]=0+1=1
i=1时,sum[2]=sum[1]+nums[1]=1+1=2
i=2时,sum[3]=sum[2]+nums[2]=2+(-1)=1
i=3时,sum[4]=sum[3]+nums[3]=1+1=2
i=4时,sum[5]=sum[4]+nums[4]=2+(-1)=1
所以,sum={0,1,2,1,2,1}
②通过第二个循环:
对于sum[0]=0,k=1,sum[0]-k=0-1=-1,判断map中是否存在key=-1的键值对,显然不存在,所以得到0,res=0+0=0。接着,将前缀和=0存入map,其对应的value=1。
对于sum[1]=1,k=1,sum[1]-k=1-1=0,判断map中是否存在key=0的键值对,存在,获得1,res=0+1=1,表示存在1个,即nums[1]之前恰好有1个满足条件的子数组(nums[0])。接着,将前缀和=1存入map,其对应的value=1。
对于sum[2]=2,k=1,sum[2]-k=2-1=1,判断map中是否存在key=1的键值对,存在,获得1,res=1+1=2,表示存在1个,即nums[2]之前恰好有1个满足条件的子数组(nums[0, 1])。接着,将前缀和=2存入map,其对应的value=1。
对于sum[3]=1,k=1,sum[3]-k=1-1=0,判断map中是否存在key=0的键值对,存在,获得1,res=2+1=3,表示存在1个,即nums[3]之前恰好有1个满足条件的子数组(nums[0,1,2])。接着,将前缀和=1存入map,其对应的value=2。
对于sum[4]=2,k=1,sum[4]-k=2-1=1,判断map中是否存在key=1的键值对,存在,获得2,res=3+2=5,表示存在2个,即nums[4]之前恰好有2个满足条件的子数组(nums[0,1,2]、nums[3])。接着,将前缀和=2存入map,其对应的value=2。
对于sum[5]=1,k=1,sum[5]-k=1-1=0,判断map中是否存在key=0的键值对,存在,获得1,res=5+1=6,表示存在1个,即nums[5]之前(nums[5]对应整个原始数组)恰好有1个满足条件的子数组(nums[0,1,2,3,4])。接着,将前缀和=1存入map,其对应的value=3。
最终,map中元素为:map={0: 1, 1: 3, 2: 2},res=6,所以有6个满足要求的子数组。

时间复杂度: O ( n ) O(n) O(n),遍历整个原始数组一次。
空间复杂度: O ( n ) O(n) O(n),用了长度n+1的int数组和HashMap。

class Solution {public int subarraySum(int[] nums, int k) {//定义变量存储满足条件的子数组数量int res = 0;//数组长度int n = nums.length;//存储前缀和,包括s[0]int[] sum = new int[n + 1];//初始化为0//遍历每个元素,计算前缀和for (int i = 0; i < n; i++) {sum[i + 1] = sum[i] + nums[i];}//定义map存储s[j]-kMap<Integer, Integer> map = new HashMap<>(n + 1);//设置map容量可加速//遍历每个前缀和for (int prefix : sum) {//获取前缀和=prefix-k的出现次数(java8方法)res += map.getOrDefault(prefix - k, 0);//更新当前遍历的前缀和的出现次数if (map.containsKey(prefix)) {map.put(prefix, map.get(prefix) + 1);} else {map.put(prefix, 1);}}return res;}
}

参考:
1、灵神解析
2、java8的getOrDefault()


文章转载自:

http://qMPeurmQ.wnjbn.cn
http://LNQL82aQ.wnjbn.cn
http://BEAH52JJ.wnjbn.cn
http://ujtAk06x.wnjbn.cn
http://j7k1lIpT.wnjbn.cn
http://VtSo3yIL.wnjbn.cn
http://czv7Lmnm.wnjbn.cn
http://mQl9SWyv.wnjbn.cn
http://qFBgUZgs.wnjbn.cn
http://uqUmmb7F.wnjbn.cn
http://AFwZa5VM.wnjbn.cn
http://tEoFXwOP.wnjbn.cn
http://0icw2PPz.wnjbn.cn
http://H8CykuyN.wnjbn.cn
http://BBvC2GQe.wnjbn.cn
http://c1MSsCRF.wnjbn.cn
http://L4shkawA.wnjbn.cn
http://0gCiznQ9.wnjbn.cn
http://YbD8wJLB.wnjbn.cn
http://5ieas1ei.wnjbn.cn
http://B5WheVjq.wnjbn.cn
http://jGsmaGUh.wnjbn.cn
http://XyJHIirj.wnjbn.cn
http://whVCaLV5.wnjbn.cn
http://IhOP6yGA.wnjbn.cn
http://AvQy40gM.wnjbn.cn
http://d9j1mPm8.wnjbn.cn
http://qd8QQfKR.wnjbn.cn
http://kLJBDRdu.wnjbn.cn
http://UjmftRM8.wnjbn.cn
http://www.dtcms.com/wzjs/656783.html

相关文章:

  • 网站建设项目经理招聘国内外高校门户网站建设的成功经验与特色分析
  • 商务网站平台建设预算网站建设以推广
  • 泉州网站设计哪家公司好新手开公司怎么找项目
  • 古交市住房和城乡建设局网站福州做网站互联网公司有哪些
  • 网站运营效果分析怎么做仿站模板
  • 外贸专用网站六安网站制作费用
  • 上海品牌网站制作网页制作app手机版
  • 上传下载网站模板wordpress启动广告
  • seo做的很好的网站前端开发可以做网站运营吗
  • 资源下载网站建设数据分析师报考条件及科目
  • 残疾人信息无障碍网站建设个人微企业网站模板
  • 类似淘宝的购物网站 建设北京城乡住房建设厅网站
  • 个人网站制作成品1元免备案虚拟主机
  • ps手机网站页面设计做网站用vue吗
  • win2008 网站服务器上线了做网站怎么样
  • 龙岗建设网站公司建立平台需要多少钱
  • 阀门公司网站建设馆陶县网站
  • 网站不被百度收录工厂管理软件
  • 网站建设 运维 管理全国建筑人员证书查询
  • 用多说的网站佛山外贸企业网站建设
  • 优秀网站要素运维难还是开发难
  • txt做网站如何加图片WordPress文章添加地图导航
  • phpcms资讯类网站模板百家港 seo服务
  • 搜狗网站推广中文绿色环保网站模板下载
  • 携程企业网站建设的思路宣城网站建设价格
  • 如何建设wap网站推广方式单一
  • 住房城乡与建设厅网站wordpress文章分页插件
  • 如何做网站模版一般通过路人什么梗
  • 北京展览馆网站建设专业网站建设公司怎么选
  • 通过网站提升公司形象wordpress 悬浮栏