zoukankan      html  css  js  c++  java
  • 《程序员代码面试指南》第八章 数组和矩阵问题 数组中子数组的最大累乘积

    题目

    数组中子数组的最大累乘积
    

    java代码

    package com.lizhouwei.chapter8;
    
    /**
     * @Description: 数组中子数组的最大累乘积
     * @Author: lizhouwei
     * @CreateDate: 2018/5/8 21:59
     * @Modify by:
     * @ModifyDate:
     */
    public class Chapter8_19 {
        public double maxProduct(double[] arr) {
            double maxValue = arr[0];
            double minValue = arr[0];
            double curMinValue = arr[0];
            double curMaxValue = arr[0];
            double res = arr[0];
            for (int i = 1; i < arr.length; i++) {
                curMaxValue = maxValue * arr[i];
                curMinValue = minValue * arr[i];
                maxValue = Math.max(Math.max(curMinValue, curMaxValue), arr[i]);
                minValue = Math.min(Math.min(curMinValue, curMaxValue), arr[i]);
                res = Math.max(res, maxValue);
            }
            return res;
        }
    
        //测试
        public static void main(String[] args) {
            Chapter8_19 chapter = new Chapter8_19();
            double[] arr = {-2.5, 4, 0, 3, 0.5, 8, -1};
            System.out.print("数组 arr = {-2.5, 4, 0, 3, 0.5, 8, -1}最大累积为:");
            double res = chapter.maxProduct(arr);
            System.out.print(res);
        }
    }
    

    结果

  • 相关阅读:
    TensorFlow学习笔记--CIFAR-10 图像识别
    第二章--第二节:注释
    webbrowser
    RichViewEdit
    RichEdit
    TreeView
    RichView
    ListView
    DesktopLoader服务程序
    Delphi实现程序只运行一次并激活已打开的程序
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/9011381.html
Copyright © 2011-2022 走看看