leetcode152 乘積最大子串行

2021-10-05 21:26:26 字數 831 閱讀 3932

自己想的方法:

雙重for迴圈,外層控制開始的地方,內層控制從開始到陣列最後

不斷替換最大值,最終得出結果,但是效率很低

**:

package com.leetcode.dp;

public

class

leet152

; system.out.

println

(maxproduct

(arr));

}public

static

intmaxproduct

(int

nums)

}return ans;

}}

題解方法:

同時存在最大值與最小值(負的最大值)

在這種情況下,如果遇到

每當遇到乙個負數,最大值與最小值進行替換

然後:最大值變為math.max(原來最大值這個數,這個數)

最小值變為math.min(最小值這個數, 這個數);

max在原來最大值和最大值之間取

※**:

class

solution

imax = math.

max(imax*nums[i]

, nums[i]);

imin = math.

min(imin*nums[i]

, nums[i]);

max = math.

max(max, imax);}

return max;}}

152-cheng-ji-zui-da-zi-xu-lie-by-g/

Leetcode 152 乘積最大子串行

原題描述 找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 例如,給定序列 2,3,2,4 其中乘積最大的子串行為 2,3 其乘積為6。解答 1.暴力搜尋 o n 2 沒有ac 超時 class solution return max 2.動態規劃思想,max min 每有乙個新的數字加入,...

Leetcode 152 乘積最大子串行

給定乙個整數陣列nums,找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 示例 1 輸入 2,3,2,4 輸出 6解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0解釋 結果不能為 2,因為 2,1 不是子陣列。這裡用動態規化的方法,即dp i 為以i結尾乘積最大連...

leetcode152 乘積最大子串行

給定乙個整數陣列 nums 找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0 解釋 結果不能為 2,因為 2,1 不是子陣列。用三個變數分別記錄最大值,到之前乙個數的最大值和...