获取数组中子串乘积的最大值
2015-09-21 17:17
232 查看
【题目】给定一个数组,例如arr = {-2.5, 4, 2, 3, 0, 8, 4}; 那个8和4相乘得到32,是连续数相乘得到的最大值,得到该值即可。
【解答】注意此过程的三种情况即可,最大数成为最大,最小数变成最大,当前数最大。时间复杂度O(n)。
【解答】注意此过程的三种情况即可,最大数成为最大,最小数变成最大,当前数最大。时间复杂度O(n)。
public static double getMax(double[] arr) { if(arr == null || arr.length == 0) { return 0; } double max = arr[0]; double mix= arr[0]; double maxEnd = arr[0]; double mixEnd = arr[0]; double res = arr[0]; for (int i = 1; i < arr.length; i++) { maxEnd = max * arr[i]; mixEnd = mix * arr[i]; max = Math.max(Math.max(maxEnd, mixEnd), arr[i]); //三种情况:最大数最大,最小数变成最大,当前数最大 mix = Math.min(Math.min(maxEnd, mixEnd), arr[i]); res = Math.max(res, max); } return res;
相关文章推荐
- daxpy dcopy计算
- Processes and Threads 进程与线程
- 代码先行-log4Net初体验
- 第三周项目1顺序表的基本运算3
- 第四周—项目3 - 单链表应用(1)逆置
- 安装lamp之 一键安装php
- 关于图像中的高低频成分与梯度及梯度方向的说明
- 巧设置ExpandableListView右边的箭头
- 第二周 项目2-程序的多文件组织
- 第三周项目4-顺序表得应用2
- 如何在mysql中优雅的解决精确到毫秒的问题?
- C++ 支持的一些重要运算符及运算符优先级
- iOS使用CoreMotion实现摇一摇功能
- ThreadLocal
- 申请iOS公司开发者账号
- 零基础学python-18.9 序列映射函数:map
- PID控制器(比例-积分-微分控制器)- III
- Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局
- Xcoder 7.0 免证书真机测试
- 零基础学python-18.9 序列映射函数:map