题干

我人比较蠢想不出好的解决方案,只能采用暴力破解才能维持的了生活这样。。

资源限制
时间限制: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。

思路

使用循环链表

代码

import java.util.Scanner;/*** 输入n个数,围成一圈,求连续m(m<n)个数的和最大为多少* n m* n个数*/public class Main {static int max=0; /**链表**/static class Node{int data;Node next;public Node(int data){this.data=data;}public Node(){}}/**链表初始化**/static public Node Init(Node head,int data){Node p = new Node();Node h=head;p.data=data;p.next=null;while(h.next!=null){h=h.next;}h.next=p;return head;}/**核心代码**/static public Node add(Node head,int m,int max1){int tepsum=0;Node p=head.next;//特别这边要注意 每次节点只往后移一位 所以先保存for(int i=0;i<m;i++){tepsum+=head.data;head=head.next;}max=max1>tepsum?max1:tepsum;//每次保存最大的值赋给maxreturn p;}public static void main(String[] args) {final Scanner scanner = new Scanner(System.in);int n=scanner.nextInt();int m=scanner.nextInt();Node head = new Node(scanner.nextInt());for(int i=0;i<n-1;i++){int a=scanner.nextInt();head= Init(head, a);}Node p=head;while (p.next!=null){p=p.next;}p.next=head;/**构建循环链表**/Node q=head;for(int i=0;i<n;i++){head=add(head,m,max);}System.out.println(max);}
}

其实也可以用数组来解决,这道题目我写完暴力方法后想到,好像只需要在最后一个元素后面补充m个元素就好了,补充的元素就是第1个到第m个。最后再按照下面的方法来解决

//b数组就是原来是数据
int[] a=new int[n+m-1];
for(int i=0;i<n;i++){a[i]=b[i];
}
for(int i=0;i<m;i++){a[n+i]=b[i];
}
int max=-999999;
for(int i=0;i<n;i++){for(int j=0;j<m;j++){sum+=a[i+j];}if(max<sum)    max=sum;
}
System.out.println(max);

大致就是上面这样,我也没试过,就是想到了。不过肯定是可以的。

蓝桥杯试题 算法提高 数组求和相关推荐

  1. 蓝桥杯试题 算法提高 扶老奶奶过街(C语言)

    试题 算法提高 扶老奶奶过街(C语言) 资源限制 时间限制:1.0s 内存限制:256.0MB 一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: ...

  2. 蓝桥杯 试题 算法提高 P0402 猴子吃桃问题 Java

    试题 算法提高 P0402 资源限制 时间限制:1.0s   内存限制:256.0MB 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个. ...

  3. 蓝桥杯试题 算法提高 转圈游戏 C/C++

    试题 算法提高 转圈游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最 ...

  4. 蓝桥杯 ADV-73 算法提高 数组输出

    输入一个3行4列的数组,找出该数组中绝对值最大的元素.输出该元素及其两个下标值.如有多个输出行号最小的,还有多个的话输出列号最小的. 样例输入 1 2 3 5 -2 5 8 9 6 -7 5 3 样例 ...

  5. 蓝桥杯 试题 算法提高 阴谋(C++)

    阴谋 题目浏览 算法代码 核心思路 题目浏览 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 第四次圣杯战争开始了. 为了收集敌人的情报,言峰绮礼命令他的使魔Assassin将自己的 ...

  6. [Java] 蓝桥杯ADV-96 算法提高 复数求和

    从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出. 样例输入: 3 3 4 5 2 1 3 样例输出: 9+9i 样例输入: 7 1 2 3 4 2 5 1 8 6 ...

  7. [Java] 蓝桥杯ADV-184 算法提高 素数求和

    问题描述 输入一个自然数n,求小于等于n的素数之和 样例输入 2 样例输出 2 数据规模和约定 测试样例保证 2 <= n <= 2,000,000 package adv184;impo ...

  8. 蓝桥杯 ADV-184 算法提高 素数求和

    问题描述 输入一个自然数n,求小于等于n的素数之和 样例输入 2 样例输出 2 数据规模和约定 测试样例保证 2 <= n <= 2,000,000 #include <iostre ...

  9. 蓝桥杯 ADV-96 算法提高 复数求和

    从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出. 样例输入:  3  3 4 5 2 1 3 样例输出: 9+9i 样例输入:  7 1 2 3 4 2 5 1 8 ...

最新文章

  1. 混合使用Azure LB和ILB访问相同web服务(2)
  2. pandas的自带数据集_盘点 | Python自带的那些数据集
  3. cas 连接oracle,Oracle 生成系统数据导入测试系统及smarteam 连接更改
  4. 看出每个应用程序最高可用内存是多少
  5. .NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程
  6. 计算机网络——基本介绍
  7. 数据装载服务器_操作事项_06
  8. 机器学习 | 距离计算
  9. 打开wmware没反应_白酒打开后能存放多久?
  10. 雷军:小米11的屏幕是小米手机有史以来最贵且最好的屏幕
  11. java 方法引用_JAVA 8 方法引用 - Method References
  12. 如何在Web App Project 或者 Web Site Project的App_Code 内使用 Profile/ProfileCommon
  13. 网络爬虫---微信爬虫
  14. PFC(Power Factor Correction)功率因数校正电路
  15. python文本挖掘教程,4个步骤教你轻松完成文本挖掘预处理(附python代码)
  16. [学习笔记]opencv双线性插值法图像放大
  17. 详细分析Android中的引用机制Reference(WeakReference、SoftReference、PhantomReference)
  18. jiffies和jiffies_64
  19. volatile能保证原子性吗?
  20. python自动化(五)接口自动化:4.接口自动化框架搭建实战

热门文章

  1. eclipse init 配置
  2. [3/21]Windows Server 2008时钟方面的改进展示
  3. 返回表达式列表中最小值least(exp1,exp2,exp3,……,expn)
  4. Asp.net2.0水晶报表的一些示例源码
  5. mysql聚簇索引 和主键的区别_[MySQL] innoDB引擎的主键与聚簇索引
  6. git回退历史版本无法上传_Git系列教程(二):版本库中添加文件、版本回退
  7. mapreduce yarn内存参数
  8. myeclipse去掉js报错
  9. eureka server配置_springcloud项目搭建第三节:eureka集群
  10. linux部署node web,nodejs怎么部署到Linux上?