• 整数组中取最大子数组


    寻找最大子数组

    1.设计思路;首先数组首尾连接问题 ,只需要将两个相同数组拼接即可。

                寻找最大子数组流程:定义变量 max  shou  wei   从数组下标0开始循环,最初遇到整数小于0,舍去,找第一个大于零的数字。

                                                                第一个正整数存储   于shou   从下一个开始循环,求和。

                                                               当和小于0,舍去。      循环一遍 求得和值最大值的下标。

    程序:

    public class MM {
          public static void main(String args[]){
              int a[]={1,-5,7,-3,-4,4,8,-9};
              int aa[]={1,-5,7,-3,-4,4,8,-9,1,-5,7,-3,-4,4,8,-9};
             
              am(a,aa);
          }
          
          static int [] am(int []a,int []aa){        
                  int shou=0; int wei=0;
                  int shou2=0;int wei2=shou2;
                  int max=0;int max2=aa[shou2];
                for(int i=0;i<a.length;i++){
                    shou2=i;wei2=i;max=0;
                  for(int j=i;j<a.length+i;j++){       
                      if(max+aa[wei2]<0){             
                          shou2=wei2+1;
                          wei2=wei2+1;
                          max=0;       
                      }
                      else{        
                          if(aa[wei2]+max>max2){              
                             shou=shou2;wei=wei2;
                             max2=aa[wei2]+max; 
                             max=max2;
                            }else{
                          max=aa[wei2]+max;} 
                          wei2++;
                       }
                  }
                }
                  if (max2 <= 0) { 
                      max = aa[0];
                      for (int i = 0; i < aa.length; i++) {
                          if (aa[i] >= max) {
                              max = aa[i];
                              shou=i;wei=i;
                          }
                      }
                  }
                
            
              System.out.println("第一次答案 下标开始"+shou+"下标结尾"+wei);
              
              
              if(wei>aa.length/2){wei=wei-aa.length/2;
              System.out.println("下标开始"+shou+"  下标结尾第二圈"+wei);}
              else{System.out.println("下标开始"+shou+"下标结尾"+wei);}
              return aa;
          }
        }

    运行结果 截图;

              

  • 相关阅读:
    pip install
    自动更新高清电影文件中文名
    csv、excel导入oracle
    02_Jenkins配置任务
    01_Jenkins windows安装
    run_jmeter.py
    02_禅道的基本使用
    01_禅道搭建手册
    01_charles 下载安装(破解版)
    06_Linux常见的命令
  • 原文地址:https://www.cnblogs.com/du1269038969/p/6652811.html
Copyright © 2020-2023  润新知