• 课堂练习03


    课堂练习03

    设计思路:

    设置最大值变量(用来存放二维子数组和的最大值)

    在一维子数组和的求值上的基础上,在最外层再加循环。{

    求一维子数组和的最大值;

    把一维子数组错位使最后一个数成为第一个数,第一个数成为第二个数......

    如果最大值(二维)小于这次循环的数组子数组和的最大值(一维),更新最大值(二维);

                             }

    得到并显示二维子数组和的最大值。

    程序源代码:

    1 public class Test2 {
     2      public static void main(String args[]){
     3          int Array[]={0,1,5,-4,9,10,54,-6,-34,78}; 
     4          int MAX=Array[0];
     5          for(int ii=0;ii<10;ii++){
     6              int max=Array[0];int sum=Array[0];
     7              for(int i=1;i<10;i++){
     8                  if(sum+Array[i]>=sum){
     9                      sum=sum+Array[i];
    10                      if(sum>max){
    11                      max=sum;}
    12                  }    
    13                  else if(sum+Array[i]<0){
    14                      sum=0;
    15                  }
    16                  else{
    17                      sum=sum+Array[i];
    18                  }                 
    19              }
    20              int a=Array[0];
    21              for(int iii=0;iii<9;iii++){
    22                  Array[iii]=Array[iii+1];                 
    23              }
    24              Array[9]=a;
    25              if(MAX<max){
    26                  MAX=max;
    27              }28          }
    29          System.out.println("和最大的子数组的和为:"+MAX);
    30      }
    31 }

                         

    总结:在写首尾相接的时候,总会的遇见数组越界情况,所以运用了,当和小于自己设定的最大值的时候,我们将求的的和从新定义成

    团队照片:

  • 相关阅读:
    hdu 2082 找单词
    hdu 2079 选课时间(题目已修改,注意读题)
    hdu 2073 无限的路
    hdu 2062 Subset sequence
    poj 2777 Count Color
    hdu 2067 小兔的棋盘
    卡特兰数
    poj3468
    hdu1394
    hdu1166(线段树之单点更新)
  • 原文地址:https://www.cnblogs.com/syhn/p/5387226.html
Copyright © 2020-2023  润新知