码迷,mamicode.com
首页 > 编程语言 > 详细

首尾相接的数组的子数组的最大值

时间:2016-04-15 21:53:12      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

设计思想:输入一定长度的数组,分别以每个数为数组的开头,进行一维非环的数组求最大值,得出最大值,为首尾相接的数组的最大值,

程序源代码:

package sumarray;

import java.util.InputMismatchException;
import java.util.Scanner;

public class MaxSum {
    public static void main(String args[])
    {
        int maxsum=0,sum=0;//maxsum为sum中的最大值,sum为i到i+x的和
        int array[]=new int[10];
        Scanner in=new Scanner(System.in);
        System.out.print("请输入5个整数:");
        for(int i=0;i<5;i++)
        {
            try//验证输入是否合法
            {
                array[i]=in.nextInt();
                array[i+5]=array[i];
            }
            catch(InputMismatchException e)
            {
                break;
            }
        }for(int i=0;i<5;i++)//以每个数为开头进行最大值求解
        {
            sum=0;
            for(int j=0;j<5;j++)//非环形数组求最大值
            {
                if(sum<0)
                    sum=0;
                sum+=array[i+j];
                if(sum>maxsum)
                    maxsum=sum;
            }
        }
        System.out.print("子数组的最大值为:"+maxsum);
    }
 
}

实验结果截图:技术分享技术分享

编号 缺陷 解决方法
01 只能输入五个数 未解决,可以增加设置数组长度大
02 数值不能过大 大数的存储与比较,将int设为String
     

 

首尾相接的数组的子数组的最大值

标签:

原文地址:http://www.cnblogs.com/myblog-2015/p/5396970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!