zoukankan      html  css  js  c++  java
  • 课堂测试 求最大字数组和

    一、题目:
    一个有正有负的整数数组里,其中连续的一个或多个整数构成的整数组,有一个和,求最大子数组,要求,时间复杂度为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);
        }
    }

    四。运行截图:

  • 相关阅读:
    记录按钮点击次数,点击三次之后跳转页面
    HTML拖放
    .Net实现发送邮件功能
    HTTP 400 错误
    方法(参数的传递)
    方法
    c# 属性 (get、set)
    Python和C++交互
    从Windows远程Ubuntu
    Eclipse+Tomcat WEB开发配置
  • 原文地址:https://www.cnblogs.com/3066405538a/p/5367753.html
Copyright © 2011-2022 走看看