• Java实现 蓝桥杯 算法提高 数组求和


    试题 算法提高 数组求和

    资源限制
    时间限制: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);
     
        }
    }
    
    
  • 相关阅读:
    sql插入临时表数据的方法
    bootstrap中模态框、模态框的属性
    前台页面实现拖拽图片,拖拽图片排序
    生成二维码,二维码的生成
    bootstrap表格分页
    Python 处理Excel内的数据(案例介绍*2)
    微博数据抓取练习
    微信小程序开发笔记(二)
    微信小程序开发笔记(一)
    UCI 人口收入数据分析(python)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076156.html
Copyright © 2020-2023  润新知