首页 > 编程语言 > 详细

返回一个整数数组中最大子数组的和

时间:2019-03-09 14:34:44      阅读:187      评论:0      收藏:0      [点我收藏+]

当看到这道题目的时候,没有理解清楚题目,在(数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和)这个条件想了想方法,不知道该如何去写。

后来理解清楚后用了这个方法去写:把第一个数当成一个子数组、第1、2个数在组成一个数组、第1、2、3数在组成一个数组,以此类推 求出每个数组的和,并将每个数组的和存到另一个数组中

代码如下:

for(int j=0;j<a.length;j++)
{
a[j] = Integer.parseInt(s[j]);
sum=sum+a[j];
b[m]=sum;
m++;
}

接下来开始比较每个和的大小,然后输出最大值。

max=b[0];
for(int i=1;i<m;i++)
{
if(max<b[i])
{
max=b[i];
}
}
System.out.println("max="+max);
}

最后那个复杂程度不知道该如何去写,还没有完善。

下面是整个代码

package shuzu;
import java.util.Scanner;
public class main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        String str=sc.nextLine().toString();
        String s[]=str.split(" ");
        int sum=0,m=0;
        int max = 0;
        int a[]=new int[s.length];
        int [] b=new int[30];
        for(int j=0;j<a.length;j++)
        {
            a[j] = Integer.parseInt(s[j]);
              sum=sum+a[j];
              b[m]=sum;
              m++;            
        }
        for(int k=0;k<m;k++)
        {
            System.out.println("sum="+b[k]); 
        
        }
        max=b[0];
        for(int i=1;i<m;i++)
        {
            if(max<b[i])
            {
                max=b[i];
            }
        }
        System.out.println("max="+max);
    }
    
}

技术分享图片

技术分享图片

 

返回一个整数数组中最大子数组的和

原文:https://www.cnblogs.com/lishengming00/p/10500534.html

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