獲取陣列中子串乘積的最大值
【題目】給定一個陣列,例如arr = {-2.5, 4, 2, 3, 0, 8, 4}; 那個8和4相乘得到32,是連續數相乘得到的最大值,得到該值即可。
【解答】注意此過程的三種情況即可,最大數成為最大,最小數變成最大,當前數最大。時間複雜度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;
相關文章
- 子陣列的乘積陣列
- JavaScript 獲取陣列中最大值JavaScript陣列
- js如何獲取陣列中的最大值JS陣列
- 【DP】乘積最大子陣列陣列
- JavaScript獲取陣列最大值和最小值JavaScript陣列
- js獲取數字陣列最大值的幾種方式JS陣列
- Golang獲取int陣列裡的最大值和下標Golang陣列
- javascript獲取陣列中最大值程式碼例項JavaScript陣列
- es6實現獲取陣列中最大值陣列
- js獲取陣列元素中的最大值和最小值JS陣列
- JZ-051-構建乘積陣列陣列
- 《劍指offer》:[52]構建乘積陣列陣列
- js獲取陣列的最大值和最小值程式碼例項JS陣列
- 二維陣列的獲取陣列
- LeetCode-152-乘積最大子陣列LeetCode陣列
- 【Leetcode】152.乘積最大子陣列LeetCode陣列
- LeetCode-238-除自身以外陣列的乘積LeetCode陣列
- LeetCode 238. 除自身以外陣列的乘積LeetCode陣列
- js獲取數字陣列中的最大值和最小值程式碼例項JS陣列
- 力扣 - 劍指 Offer 66. 構建乘積陣列力扣陣列
- JavaScript 陣列最大值JavaScript陣列
- C 陣列最大值陣列
- JS陣列遍歷和獲取陣列最值JS陣列
- C++獲取陣列的長度C++陣列
- 獲取剪下板有格式的陣列陣列
- oracle按列求乘積(轉)Oracle
- 視窗最大值陣列陣列
- js如何獲取指定陣列元素在陣列中的索引值JS陣列索引
- js獲取 陣列最大/小值JS陣列
- 獲取陣列第N個元素的方法陣列
- JavaScript獲取元素在陣列中的位置JavaScript陣列
- 關於多項式的加和、乘積可用連結串列和陣列陣列
- 陣列呼叫c#讀取陣列中獲取最大最小值方法陣列C#
- C++ 獲取陣列大小、多維陣列操作詳解C++陣列
- 遞迴求解陣列中的最大值遞迴陣列
- javascript如何獲取陣列的長度和遍歷陣列的每一項JavaScript陣列
- JS 獲取陣列物件的值&提取Object的valueJS陣列物件Object
- JavaScript 陣列排序 與 求最大值JavaScript陣列排序