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

网站的外部推广乔拓云h5制作

网站的外部推广,乔拓云h5制作,360搜索网站提交,微网站制作提供商推荐题目 给定一个整数数组和一个整数 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/553459/

相关文章:

  • 网站开发设计运维外贸业务员招聘人才网
  • 免费ppt模板的网站怎样精通wordpress
  • 网站备案 论坛上海十大网站建设
  • 天津网站建设哪个好邯郸注册公司流程和费用
  • 分销网站建站wordpress积分投稿
  • 关于做网站的ppt徐汇网站建设公司
  • 1999年怎样建立企业网站哈尔滨搜索引擎建站
  • 重庆邮电大学官网网站响应式网站开发demo
  • 网站建设是什么科目有没有做汽车维修记录网站
  • 免费网站服务商办公室oa管理系统
  • 《php网站开发》电子课件wordpress ajax请求
  • 如何查找各种网站网站开发安卓开发
  • 站长工具的网址做项目搭建网站 构建数据库
  • 做汽车价格的网站网站手机版怎么做
  • 国内设计欣赏网站网站右下角广告展示代码
  • 分销网站建设方案南山网站seo
  • 成都爱站网seo站长查询工具个性化的个人网站简易
  • 大庆建设中等职业技术学校网站网站建设需要怎样的经营范围
  • 内部网站建设拓扑建立外贸网站
  • 重庆网站备案需要几天优设网址
  • 发布网站的空间连网站建设
  • 企业网站建设研究论文东莞长安网站制作
  • 网站开发常用的流程做系统简单还是网站简单
  • 汕头网站制作推荐北京做兼职的网站
  • 网站开发培训机构排名百度2019旧版本下载
  • 积极做好门户网站建设工作网站开发主管待遇
  • 可口可乐网站建设兰州网络推广徽hyhyk1
  • 团购网站建站南皮县网站建设价格
  • 中国发展在线网站官网wordpress 插件放在那
  • 怎么做网站网站不被发现上海市建设局网站