试题 算法提高 数组求和

资源限制

时间限制:1.0s 内存限制:256.0MB

问题描述

  输入n个数,围成一圈,求连续m(m<n)个数的和最大为多少?

输入格式

  输入的第一行包含两个整数n, m。第二行,共n个整数。

输出格式

  输出1行,包含一个整数,连续m个数之和的最大值。

样例输入

10 3

9 10 1 5 9 3 2 6 7 4

样例输出

23

数据规模和约定

  0<m<n<1000, -32768<=输入的每个数<=32767。

PS:

方法就是把数组的前m个放在正常数组的后面

第一个好理解 第二个代码量少

 

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt(); int [] num = new int [n+m];
for (int i=0;i<n;i++){
num[i]=sc.nextInt();
}
sc.close(); for (int i=n;i<n+m;i++){
num[i]=num[i-n];
}
// for (int i=0;i<num.length;i++){
// System.out.print(num[i]+" ");
// }
int max = 0,sum=0;
for (int i=0;i<m;i++)
sum+=num[i];
for (int i=m;i<m+n;i++){
sum= sum-num[i-m]+num[i] ;
max=Math.max(max,sum);
}
System.out.println(max); }
}
 

import java.util.Scanner;

public class 数组求和 {
public static void main(String[] args) {
int max = 0,sum=0,n,m,i;
int [] num;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
//建立m+n的数组就是为了把首尾连接的情况
// 把最开头的m个放在后面,省去了链表的复杂
num = new int [n+m];
for ( i=0;i<m;i++){
num[i]=sc.nextInt();
sum+=num[i];
} for ( i=m;i<m+n;i++){
num[i]=i<n?sc.nextInt():num[i-n];//n以内就是输入的,n以后就是数组的前m
sum= sum-num[i-m]+num[i] ;//减去m列表内的第一项,加上当前项
max=Math.max(max,sum);
}
sc.close();
System.out.println(max); }
}

最新文章

  1. css3 翻转和旋转的区别
  2. jquery模拟LCD 时钟
  3. mysql 获取权限
  4. 详解SQL集合运算
  5. Hadoop分布式文件系统:架构和设计要点
  6. c++语法集锦
  7. Segment fault及LINUX core dump详解
  8. iOS开发多线程篇—单例模式(ARC)
  9. [百度空间] [原]跨平台编程注意事项(二): windows下 x86到x64的移植
  10. SP避免Form重复提交的三种方案
  11. 全部省市县数据库(MySQL脚本) (转)
  12. 洛谷 P1026 统计单词个数
  13. [转载] extern &quot;C&quot;的用法解析
  14. 在 Linux 系统中安装Load Generator ,并在windows 调用方法
  15. [转载]PHP检测一个元素是否存在于数组中
  16. Makefile学习总结
  17. java多线程设计模式
  18. Imcash:比特币减半 四年机遇你能否抓住?
  19. rpm: /root/anaconda3/lib/liblzma.so.5: version `XZ_5.1.2alpha&#39; not found (required by /lib64/librpmio.so.3)
  20. 使用zabbix-java-gateway可以通过该网关来监听多个JVM

热门文章

  1. [工具]微软的学习平台Microsoft Learn很好用,推荐一下
  2. 为什么PUSH推送要经常背锅?
  3. 一道题带你搞定Python函数中形参和实参问题
  4. Web_php_include
  5. android 百度地图v3.2.0获取实际地址
  6. mybatis开发,你用 xml 还是注解?我 pick ...
  7. Windows 系统如何安装 Docker
  8. Postman学习之Postman简介
  9. Vue element-ui date-picker 结束时间大于开始时间且开始时间小于此刻(转)
  10. Java创建线程的方式