首页 > 编程语言 > 详细

首尾相连的数组 求其最大子数组

时间:2019-03-24 12:17:44      阅读:129      评论:0      收藏:0      [点我收藏+]

设计思想:将数组扩大成两倍,将第二重数组等于初始数组的第一值,即数组长度为n,int【i+n】=int【i】,利用for循环即可实现。

代码如下:

package shuzu;

import java.util.Scanner;

public class shuzu {
public static void main(String args[])
    {
        int maxsum=0,sum=0;
        int array[]=new int[10];
        Scanner in=new Scanner(System.in );
        System.out.println("输入n=?个整数");
         int n=in.nextInt();
        System.out.print("请输入n个整数:");
for(int i=0;i<n;i++)
            {
                array[i]=in.nextInt();
                array[i+n]=array[i];
            }
for(int i=0;i<n;i++)
        {
            sum=0;
            for(int j=0;j<n;j++)
            {
                if(sum<0)
                sum=0;
                sum+=array[i+j];
if(sum>maxsum)
                    maxsum=sum;
            }
        }
        System.out.print("子数组的最大值为:"+maxsum);
    }
}

 

首尾相连的数组 求其最大子数组

原文:https://www.cnblogs.com/1061321925wu/p/10587563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!