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

网站建设二级菜单跨境电商选品

网站建设二级菜单,跨境电商选品,自助建站免费建站平台,合肥做app公司题目 给定一个整数数组和一个整数 k &#xff0c;请找到该数组中和为 k 的连续子数组的个数。 示例 1&#xff1a; 输入:nums [1,1,1], k 2输出: 2解释: 此题 [1,1] 与 [1,1] 为两种不同的情况 示例 2&#xff1a; 输入:nums [1,2,3], k 3输出: 2 提示: 1 < nums.leng…

题目

给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。

示例 1:

输入:nums = [1,1,1], k = 2
输出: 2
解释: 此题 [1,1] 与 [1,1] 为两种不同的情况


示例 2:

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

提示:

  • 1 <= nums.length <= 2 * 104
  • 1000 <= nums[i] <= 1000
  • 107 <= k <= 107

解题思路

前置知识

前缀和

前缀和:顾名思义,是要求前缀的总和,什么是前缀,对于一个存放数字的数组而言,前缀就是指的数组的前k项,因此对应的前缀和就是数组前k项的和。前缀和一般用来求数组中连续段子数组的值的和,类似于等差数列中利用等差数列的和来求某一段子数列的和:在这里插入图片描述

 举个例子:

我们有一个数组nums = [2,4,6,1,4]

下面我们来计算nums数组的前缀和数组arr,arr[i] = arr[i-1] + nums[i]

第一个元素由于没有前缀所以只能是nums[0],也就是2 

 第二个元素就等于arr[1] = arr[0] + nums[1]

 

 

 

 我们得到的nums的前缀和数组就为 arr = [2,6,12,13,17]

作用:

那么我们得到这个前缀和数组到底有什么用呢?

有了前缀和数组我们就可以方便的计算出,一个数组的区间之内的和,例如我们要求出nums[2]~nums[4] 的和。

nums[2]~nums[4] =nums[2] + nums[3] +nums[4] =  arr[4] - arr[1] = 11

可以直接用前缀和数组中的两个元素求出,不用再进行相加操作。这样可以有效的减少我们的重复计算。

代码为:

    public int[] prefix(int[] nums) {int[] prefix = new int[nums.length];prefix[0] = nums[0];for (int i = 1; i < nums.length; ++i) {prefix[i] = prefix[i - 1] + nums[i];}return prefix;}

1.题目要求我们找到该数组中和为 k 的连续子数组的个数,我们可以先计算出数组的前缀和。

2.然后我们利用两个for循环遍历整个原数组,枚举求出各个区间的和,若和等于k,则answer加一,注意这里,如果区间为[0,n]时,也就是左区间为0时,区间和[0,n] 就等于 arr[n],这个情况比较特殊所以我们要单独计算。最后返回answer即可。

代码实现

class Solution {public int subarraySum(int[] nums, int k) {int[] sum = new int[nums.length];sum[0] = nums[0];for(int i = 1; i < nums.length; i++){sum[i] = sum[i-1] + nums[i];}int answer = 0;for(int i = 0; i < nums.length; i++){if(sum[i] == k){answer++;}for(int j = i + 1; j < nums.length; j++){if(  sum[j] - sum[i] == k){answer ++;}}}return answer;}
}

测试结果

 

 

http://www.yayakq.cn/news/198692/

相关文章:

  • 爱空间网站模板赌钱网站怎么做的
  • 池州做网站培训拓者吧室内设计网模型
  • 网站制作加教程视频Pdf书籍网站建设
  • 网站代码结构wordpress图片上加文字
  • 网站制作 搜索wordpress托管网站
  • 网站备案一般要多久什么叫关键词
  • 购物网站 建设 费用网站头部样式
  • 重庆做公司网站wordpress评论qq
  • .net 微信网站开发设备报价单模板
  • 比尤果网做的好的网站wordpress做什么网页
  • 邵阳整站优化做app的网站有哪些
  • 万网空间上传网站标志设计网站推荐
  • 网站制作学习网站怎么做提取微信62的网站
  • 缅甸做菠菜网站将网页加入可信站点
  • 河东苏州网站建设建设银行集团网站首页
  • wordpress网站下载什么叫外链
  • 湛江做网站公司文创产品设计方案ppt
  • 怎么套用网站模板线上商城推广软文
  • 国内图片下载网站做海报的网站
  • 云建站模板东莞市民服务中心调整入场核验
  • 开发大型网站的流程wordpress 刀具企业
  • 互联网站备案信息信丰做网站
  • 珠海自适应网站设计网上做家教的网站
  • 手袋东莞网站建设重庆网站公司
  • 商城网站建设一般需要多少钱怎么可以让百度快速收录视频
  • 小型电子商务网站规划移动应用开发就业方向
  • 巩义专业网站建设公司推荐wordpress the7汉化版
  • 中国网站建设市场分析报告nike网站策划与建设
  • 建设银行网站安全性分析阿里网站怎样做seo
  • 安卓系统开发软件网站网页优化技巧