152. 乘積最大子陣列
阿新 • • 發佈:2021-12-15
又是一次失敗的思路,這是因為我想到了用動態規劃,但是我的動態規劃很拉
答案的動態規劃
但是我又分析了一下,因為都是整數,負數個數為偶數則全部相乘,因為為整數,為正就只管乘了,為奇則只乘兩端負數其中一個
我想到了最大連續加,是找到只要沒有小於0就繼續加,就還有價值,記錄最大值即可。這是隻要一直乘,最後為正即可
雖然我覺得我的夠精妙,但是我覺得還是不如答案,看了答案自己默寫一遍
max_element(begin(),end())獲取最大值地址
錯的程式碼:
class Solution { public: int maxProduct(vector<int>& nums) { int result=-10000000000; vector<vector<int>>v(nums.size(),vector<int>(nums.size(),0)); for(int i = 0 ;i < nums.size();i++){ v[i][i] = nums[i]; if(v[i][i]>result) result = v[i][i]; for(int j=i+1 ; j< nums.size();j++){ v[i][j] = v[i][j-1]*nums[j]; if(v[i][j]>result) result = v[i][j]; } } return result; } };
正確的: