• 一维整数组所有子数组和的最大值


    最基本的思路:

    先找出所有子数组;

    将所有子数组存入一个二维数组中(所有子数组存入二维数组中:以第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;
        }
    }

    运行结果:

  • 相关阅读:
    redis命令参考(四) set集合
    redis命令参考(三) List列表相关
    redis命令参考(二)
    redis命令参考(一) SortedSet相关
    insert_into_on_dumplicate_key
    laravel深入分析
    开发中GBK+UTF8编码的处理
    ajax封装调用
    linux正则表达式的用法
    linux 如何保证使程序后台运行(nohup &)
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/10506485.html
Copyright © 2020-2023  润新知