【Leetcode刷題篇】leetcode152 乘積最大陣列
給你一個整數陣列 nums ,請你找出陣列中乘積最大的連續子陣列(該子陣列中至少包含一個數字),並返回該子陣列所對應的乘積。
示例 1:
輸入: [2,3,-2,4]
輸出: 6
解釋: 子陣列 [2,3] 有最大乘積 6。
示例 2:
輸入: [-2,0,-1]
輸出: 0
解釋: 結果不能為 2, 因為 [-2,-1] 不是子陣列。
此題解題思路:與之前的子序列問題不同,這是連續的,所以維護兩個動態陣列共同更新。
class Solution {
public int maxProduct(int[] nums) {
if(nums.length==1) {
return nums[0];
}
// 兩個陣列動態規劃
int[] maxArr = new int[nums.length];
int[] minArr = new int[nums.length];
// 賦值
System.arraycopy(nums, 0, maxArr, 0, nums.length);
System.arraycopy(nums, 0, minArr, 0, nums.length);
// 對其進行判斷
for(int i=1;i<nums.length;i++) {
maxArr[i] = Math.max(nums[i]*maxArr[i-1], Math.max(nums[i], nums[i]*minArr[i-1]));
minArr[i] = Math.min(nums[i]*minArr[i-1], Math.min(nums[i], nums[i]*maxArr[i-1]));
}
// 對陣列進行迴圈找最大值
int max = maxArr[0];
for(int i=1;i<maxArr.length;i++) {
max = Math.max(max, maxArr[i]);
}
return max;
}
}
相關文章
- LeetCode-152-乘積最大子陣列LeetCode陣列
- 【Leetcode】152.乘積最大子陣列LeetCode陣列
- 【DP】乘積最大子陣列陣列
- LeetCode刷題—陣列LeetCode陣列
- 【刷題筆記】LeetCode-53 最大子陣列和筆記LeetCode陣列
- 【Leetcode刷題篇】leetcode812 最大三角形面積LeetCode
- leetcode 152 乘積最大子序列LeetCode
- LeetCode 238. 除自身以外陣列的乘積LeetCode陣列
- LeetCode-238-除自身以外陣列的乘積LeetCode陣列
- Leetcode刷題628. 三個數的最大乘積LeetCode
- leetcode-陣列中兩元素的最大乘積(Java)LeetCode陣列Java
- 刷題40-最大矩形面積
- 藍橋杯刷題-乘積尾零
- JZ-051-構建乘積陣列陣列
- LeetCode53. 最大子陣列和LeetCode陣列
- 演算法題:乘積最大子序列演算法
- LeetCode 410——分割陣列的最大值LeetCode陣列
- leetcode題解(陣列問題)LeetCode陣列
- 【Leetcode刷題篇】leetcode56 合併區間LeetCode
- 【LeetCode刷題】896. 單調數列LeetCode
- leetcode-624.陣列列表中的最大距離LeetCode陣列
- [LeetCode 刷題] 4. 尋找兩個有序陣列的中位數 (Hard)LeetCode陣列
- 力扣 - 劍指 Offer 66. 構建乘積陣列力扣陣列
- 最大子陣列問題(Maximum subarray problem)陣列
- LeetCode 刷題—樹LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- LeetCode-215-陣列中的第K個最大元素LeetCode陣列
- [藍橋杯] 乘積最大(dfs或dp)
- oracle按列求乘積(轉)Oracle
- leetcode:面試題 01.08. 零矩陣(陣列,中等)LeetCode面試題矩陣陣列
- LeetCode每日一題: 三個數的最大乘積(No.628)LeetCode每日一題
- 子陣列的最大異或和問題陣列
- 【LeetCode刷題(中等程度)】662. 二叉樹最大寬度LeetCode二叉樹
- 53、最大子陣列和 | 演算法(leetcode,附思維導圖 + 全部解法)300題陣列演算法LeetCode
- LeetCode1005. K 次取反後最大化的陣列和LeetCode陣列
- Golang刷LeetCode 26.刪除排序陣列中的重複項GolangLeetCode排序陣列