zoukankan      html  css  js  c++  java
  • 算法总结之 数组中子数组的最大累乘积

     要是知道了i-1结尾的最小累乘积min ,最大累乘积max, 那么y结尾的最大累乘积有三种可能

        max * arr[i]

       min * arr[i]

       arr[i]

    具体过程看代码实现:

    package TT;
    
    public class Test79 {
       
        public static double maxProduct(double[] arr){
            if(arr==null || arr.length ==0){
                    return 0;
            }
            double max = arr[0];
            double min = arr[0];
            double res = arr[0];
            double maxEnd= 0;
            double minEnd = 0;
            
            for(int i =1; i<arr.length; ++i){
                 maxEnd = max*arr[i];
                 minEnd = min*arr[i];
                 max =Math.max(Math.max(maxEnd, minEnd), arr[i]);
                 min = Math.min(Math.min(maxEnd, minEnd), arr[i]);
                 res = Math.max(res, max);
            } 
            return res;
            
        }
        
        public static void main(String[] args){
            
             double[] arr = new double[7];
             arr[0]=-2.5;
             arr[1]=4;
             arr[2]=0;
             arr[3]=3;
             arr[4]=0.5;
             arr[5]=8;
             arr[6]=-1;
           double x = maxProduct(arr);
           System.out.println(x);
            
        }
        
        
        
    }

  • 相关阅读:
    进程
    并发编程
    操作系统的发展史
    __init__、__new__、__call__ 方法
    MongoDB文档操作
    MongoDB集合操作
    MongoDB数据库操作
    MongoDB连接
    MongoDB的文档存储结构
    MongoDB 概念
  • 原文地址:https://www.cnblogs.com/toov5/p/7494599.html
Copyright © 2011-2022 走看看