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

怎样建设和维护网站秦皇岛网站制作公司哪家好

怎样建设和维护网站,秦皇岛网站制作公司哪家好,长春网站建设找源晟,临沂罗庄做网站公司题目 给定一个整数数组和一个整数 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/963393/

相关文章:

  • 中山网站建设网站wordpress插件 图片
  • 做百度推广网站排名网站设置始终请求电脑版
  • 高端定制网站开发建站教程详解福建网站制作公司
  • 手机站电影怎么把网站做成自适应
  • 内江移动网站建设wordpress定位插件
  • 猎场第几集做的网站推广上海做网站公司排名
  • 重庆商家网站三合一网站怎么建立
  • 宁波外贸网站建设和推广湖北宜昌推广
  • 大连装修网站推广wordpress新人必看
  • 网站创建教程做ppt接单的网站
  • 济南可信网站团队拓展口号
  • 网站建设系统计公司合肥义城建设集团有限公司网站
  • 网站免费百度站长工具官网
  • 网站后台数据改不了网站建设毕业设计任务书
  • 中国建设银行行网站龙岩网站建
  • 建国外网站需要多少钱哪个网站做视频有收益
  • 一个网站做多少页面数量合适软件开发周期
  • 做网站开发工资怎样创意字体在线生成免费
  • 网站的建设和推广有没有专门交人做美食的视频网站
  • 网站维护基本概念认知wordpress在快速编辑加自定义字段
  • 大安网站建设网站搭建 里短信
  • 贵阳企业自助建站系统网站建设地址北京昌平
  • 网站建设费用表格微信推广平台哪里找
  • 网站建设xs029wordpress伪静态设置
  • 自己做头像的网站推广模式包括哪些模式
  • 网站做语音识别co域名
  • 用jsp做网站同城引流用什么软件
  • 怎么建立一个网站链接天津网站建设服务电话
  • 网站建设方案书的内容管理制度类似微分销的平台
  • 怎么地wordpress优化设计三要素