zoukankan      html  css  js  c++  java
  • 一维整数组所有子数组和的最大值

    最基本的思路:

    先找出所有子数组;

    将所有子数组存入一个二维数组中(所有子数组存入二维数组中:以第i个开头的子数组们存入第i行);

    找出每行的最大值存入另一个数组中;

    分别比较再找出最大值子数组。

    public class Shuzu {
        public static void main(String[] args){
            int []a= {0,1,2,3,-2,-1,4,-5,10};
            System.out.println("最大子数组:"+max(a));
        }
        public static int max(int a[]) {
            /**
             * 求一维数组最大子数组
             */
            int x=a.length;
            int b[][]=new int[x][x];//存子数组
            int c[]=new int[x];//存二维数组每一行的最大值
            for(int i=0;i<x;i++) {//所有子数组存入二维数组中:以第i个开头的子数组们存入第i行
                for(int j=0;j<x;j++) {//求出二维数组的一行
                    int sum=0;
                    for(int s=i;s<=j;s++){//求每一个子数组                
                    sum+=a[s];
                    }
                    b[i][j]=sum;//存子数组
                    System.out.println("b"+i+" "+j+":"+b[i][j]);
                }
            };        
            for(int i=0;i<x;i++) {//i为行            
                for(int j=0;j<x;j++) {//j为列
                    if(b[i][j]>c[i]) {                
                        c[i]=b[i][j];
                    }
                }
            }
            int s=0;
            for(int i=0;i<c.length;i++) {    
                
                if(s<c[i]) {
                    s=c[i];
                }
            };
            return s;
        }
    }

    运行结果:

  • 相关阅读:
    mssql锁
    gridview 分页兼容BOOTSTRAP
    BOOTSTRAP前端模板
    bootstrap 简单模板
    ajax 跨域访问的解决方案
    webapi之权限验证
    webapi权限常见错误
    ajax跨域解决方案
    iis 部署webapi常见错误及解决方案
    OOM AutoMapper的简单实用
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/10506485.html
Copyright © 2011-2022 走看看