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

课堂测试 求最大字数组和

时间:2016-04-08 14:31:45      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

一、题目:
一个有正有负的整数数组里,其中连续的一个或多个整数构成的整数组,有一个和,求最大子数组,要求,时间复杂度为O(n)

二、设计思路:

1、先输入要输入的元素的个数。

2、构建两个INT类型的字数组,一个来存放数字,一个作为临时数组。

3、遇见正数就存放到临时数组里,并继续往下加,只要结果是正就继续存放。直到遇见负数,截断处理。

4、把临时数组里的数排序(不用冒泡,考虑到o(n)),输出。

三。源代码

 

package shuzuadd;
import java.util.Scanner;
public class main {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
      Scanner in = new Scanner (System.in);
      int n;//shuruchangdu
      n=in.nextInt();
      int Array1[]=new int [n];
      int Array2[]=new int [2*n];
      int sum,geshu=0;
      int max = 0;
      for(int i=0;i<n;i++)
      {
          Array1[i]=in.nextInt(); 
      }
      sum=0;
  
      for(int s=0;s<n;s++)
      {    
          
           if(sum<0)
           {
               sum=Array1[s+1];
           }
               if(sum>=0)
              {   
                  sum=sum+Array1[s];
                  Array2[geshu]=sum;
                  geshu ++;
              }
             
    
      }
       for(int x=0;x<=geshu;x++)
       {    
           if(Array2[x]<Array2[x+1])
               max=Array2[x+1];
           if(Array2[x]>=Array2[x+1])
               Array2[x+1]=Array2[x];
       }

    System.out.println(max);
    }
}

四。运行截图:技术分享技术分享技术分享技术分享

 

课堂测试 求最大字数组和

标签:

原文地址:http://www.cnblogs.com/3066405538a/p/5367753.html

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