zoukankan      html  css  js  c++  java
  • 给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以返回12。



    给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以返回12。






    public class Test75 { public static void main(String[] args) { double[] arr= {-2.5,4,0,3,0.5,8,-1}; System.out.println(findMaxMutil(arr)); } public static double findMaxMutil(double[] arr){ int n = arr.length; double f = arr[0];//记录以i结尾的累乘的最大值 double g = arr[0];//记录以i结尾的累乘的最小值 double max = f; for (int i = 1; i < n; i++) { f = Math.max(arr[i], Math.max(arr[i]*f, arr[i]*g)); g = Math.min(arr[i], Math.min(arr[i]*f, arr[i]*g)); max = Math.max(max, f); } return max; } }
    Jumping from failure to failure with undiminished enthusiasm is the big secret to success.
  • 相关阅读:
    bzoj1001 狼抓兔子
    bzoj1015 星球大战
    noip模拟赛 楼
    noip模拟赛 radius
    noip模拟赛 helloworld
    noip模拟赛 hungary
    noip模拟赛 gcd
    洛谷P3375【模板】KMP字符串匹配
    noip模拟赛 隔壁
    noip模拟赛 对刚
  • 原文地址:https://www.cnblogs.com/chongerlishan/p/6099254.html
Copyright © 2011-2022 走看看