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

泉州网站建设哪家好自媒体论坛交流推荐

泉州网站建设哪家好,自媒体论坛交流推荐,青岛贸易公司 网站制作,太原提高网站排名题干 难度:简单 题目分析 题目要求算出每个指定区间内元素的总和。 然而,区间在输入的最下面,所以按照暴力破解的思路,我们首先要遍历数组,把它的值都存进去。 然后,遍历下面的区间,从索引a…

题干

难度:简单
在这里插入图片描述

题目分析

题目要求算出每个指定区间内元素的总和
然而,区间在输入的最下面,所以按照暴力破解的思路,我们首先要遍历数组,把它的值都存进去。
然后,遍历下面的区间,从索引a到b,累加元素。
根据这个思路,我们会发现,暴力破解的代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 读取数组的长度int len = in.nextInt();int[] s = new int[len];// 读取数组元素for (int i = 0; i < len; i++) {s[i] = in.nextInt();}// 读取区间并计算和while (in.hasNextInt()) {int a = in.nextInt();int b = in.nextInt();int sum = 0;// 暴力计算区间和for (int i = a; i <= b; i++) {sum += s[i];}// 输出结果System.out.println(sum);}in.close();}
}

我们分析一下这样写的时间复杂度。

假设数组长度为n,有m个查询,那时间复杂度就是O(m*n)级别的,有点太高了。

那么,有没有更好的时间复杂度的方法呢?

我们想到,如果算区间和,每次都从区间开始加到区间结束,那么要把区间从头到尾遍历一遍。

有没有什么办法,可以以O(1)级别的时间复杂度查询出区间和呢?

解决办法就是————前缀和

简而言之,就是创建一个数组,存储累加之和。

比如新数组sum,sum[0]代表s[0],sum[1]代表s[0]+s[1],sum[2]代表s[0]+s[1]+s[2]

这样我们如果需要s[1]+s[2],只需要用sum[2]-sum[0]就行

代码

根据这个思路,我们编写代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int len = in.nextInt();int[] s = new int[len];for (int i = 0; i < len; i++) { //存储数组的值s[i] = in.nextInt();}int[] sum = new int[len];for (int i = 0; i < len; i++) {  //存储前缀和if (i == 0) {sum[i] = s[i];}else {sum[i] = s[i]+ sum[i - 1];}}while (in.hasNextInt()) {int a = in.nextInt();int b = in.nextInt();int all=0;if (a == 0) {all = sum[b];} else {all = sum[b] - sum[a-1];  //直接定位查询,是O(1)级别的复杂度}System.out.println(all);}in.close();}
}
http://www.mmbaike.com/news/176.html

相关文章:

  • 用dw可以做网站吗优化关键词排名seo
  • 海南最新消息今天爱站工具seo综合查询
  • 安徽手机网站建设衡阳网站优化公司
  • 怎么去除自己做的网站网站快速搜索
  • 做淘宝联盟必须要有网站吗女装关键词排名
  • 公司的网址格式优化流程
  • 织梦生成手机网站百度首页优化排名
  • 网站开发时间计划表必应bing搜索引擎
  • 基于php旅游网站的毕业设计网站平台推广
  • 如何做交易网站哪里有免费的网站推广软件
  • 国家开放大学网站的作业怎么做广东整治互联网霸王条款
  • 网站开发流行语言河南网站定制
  • 网站注销备案海底捞口碑营销
  • 一个一起做网站流程优化四个方法
  • 网站数据库做好了 怎么做网页今天刚刚最新消息2023
  • 如何通过cpa网站做推广江西优化中心
  • 英文网站模板下载优化师和运营区别
  • win2003 建设网站关键词网络推广企业
  • discuz做商城网站视频网站搭建
  • 做淘宝主要看哪些网站有哪些百度关键词推广怎么收费
  • 嘉兴做网站赚钱么域名注册官网免费
  • 河南省住房和城乡建设厅二维码网站广州竞价外包
  • 镇江微网站建设网站建设服务公司
  • 装潢设计就业前景seo咨询邵阳
  • 新手做代购网站扫货谷歌seo查询
  • 电影网站可以备案吗广告营销推广方案
  • 检测网站名 注册合肥网络公司
  • 网站做链接代码google chrome浏览器
  • 淘宝网站可以做seo吗浏览器大全网站
  • 如何做局域网网站建设app推广接单渠道