• 求数组最大子数组的和


      当拿到这个问题时,实在是发愁至极,因为我不是很懂这个题目的意思是什么。认真拆分后,大概思路是,找到每个子数组,然后将每个子数组的和求出来,再取他们之间的最大值。

      先把想到的需要定义的变量定义出来,首先定义原始数组,用来存放最开始的数组原型。还需要定义一个存放子数组和的数组,用来最后的取最大值。中间变量我们定义i,j两个变量就足够了,因为算法复杂度是n方。在子数组录入时需要一个计数变量,定义count。在求子数组和的时候需要一个变量sum,第一次想到的就是这些,后面需要用到变量时再往上面加。

      用两个for循环来嵌套实现,第一个循环比较容易理解,从原始数组下标开始遍历。最主要的是第二次循环,每一次都需要将sum的新值作为子数组的和存入数组中。

      每一个子数组的和都求出来以后,自然求最大值就很容易了。

     1 package zuoye3;
     2 
     3 import java.util.Scanner;
     4 
     5 public class xunhuan {
     6 
     7     public static void main(String[] args) {
     8         // TODO 自动生成的方法存根
     9         int i,j;
    10         int sum=0;
    11         int count=1;//子数组下标单位
    12         int max;
    13         Scanner scan=new Scanner(System.in);
    14         System.out.print("输入数组的长度:  ");
    15         i=scan.nextInt();
    16         int length=i*(i+1)/2;//表示子数组的个数
    17         int []a=new int[i];//定义长度为id的原始数组
    18         int []b=new int[length];//定义长度为length的子数组,用来存放各个子数组的和
    19         System.out.println("请依次输入数组元素");
    20         for(i=0;i<a.length;i++)
    21         {
    22             a[i]=scan.nextInt();
    23         }//输入数组元素
    24         System.out.println("当前数组为: ");
    25         for(i=0;i<a.length;i++)
    26         {
    27             System.out.print(a[i]+" ");
    28         }//
    29         System.out.println(" ");
    30         //下面代码表示求各子数组大小的过程
    31     for(i=0;i<a.length;i++)
    32     {
    33         sum=0;
    34         for(j=i;j<a.length;j++)
    35         {
    36             sum+=a[j];
    37             System.out.println("第"+count+"个子数组的和为"+sum);
    38             b[count-1]=sum;
    39             count++;
    40         }
    41     }
    42     max=b[0];
    43     for(i=0;i<b.length;i++)
    44     {
    45         if(max<b[i])
    46             max=b[i];
    47     }
    48 
    49     System.out.println("最大子数组的和为 :"+max);
    50     }
    51 
    52 }

      

  • 相关阅读:
    Web网站架构演变—高并发、大数据
    企业级Nginx Web服务优化实战
    初始化mysql数据库时提示字符编码错误的解决办法
    linux下logrotate 配置和理解
    Centos 5.2下安装多个mysql数据库
    编译安装 mysql 5.5,运行 cmake报错Curses library not found
    Centos 5.5 编译安装mysql 5.5.9
    理解索引的基数
    centos下yum安装mysql5.6后,无法启动 MySQL Daemon failed to start
    如何从MySQL官方Yum仓库安装MySQL5.6
  • 原文地址:https://www.cnblogs.com/Aduorisk/p/10613422.html
Copyright © 2020-2023  润新知