概述
试题 算法提高 数组求和
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
输入n个数,围成一圈,求连续m(m
输入格式
输入的第一行包含两个整数n, m。第二行,共n个整数。
输出格式
输出1行,包含一个整数,连续m个数之和的最大值。
样例输入
10 3
9 10 1 5 9 3 2 6 7 4
样例输出
23
数据规模和约定
0
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
num[i]=sc.nextInt();
}
sc.close();
for (int i=n;i
num[i]=num[i-n];
}
// for (int i=0;i
// System.out.print(num[i]+" ");
// }
int max = 0,sum=0;
for (int i=0;i
sum+=num[i];
for (int i=m;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
num[i]=sc.nextInt();
sum+=num[i];
}
for ( i=m;i
num[i]=i
sum= sum-num[i-m]+num[i] ;//减去m列表内的第一项,加上当前项
max=Math.max(max,sum);
}
sc.close();
System.out.println(max);
}
}
最后
以上就是迅速战斗机为你收集整理的java实现快速求和_Java实现 蓝桥杯 算法提高 数组求和的全部内容,希望文章能够帮你解决java实现快速求和_Java实现 蓝桥杯 算法提高 数组求和所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复