程式設計之美 2 13 子陣列的最大乘積

2022-05-18 10:26:21 字數 881 閱讀 5900

題目:乙個有n個數的整數陣列 取其中n-1個元素的子陣列 求子陣列的最大乘積 不能用除法。

這道題自己沒有寫對,沒有考慮到負數的情況,只是單純的想去掉最小的數。 但是若有負數 -5 -4 -3 中-5 * -4 = 20更大。

需要先統計正數、負數和0的個數,再分類討論。考察的其實就是細心和耐心。

//

答案解法

int getmaxproductanswer(int * a, int

alen)

else

if(a[i] > 0

)

else

}if(numzero >= 2

)

else

if(numzero == 1

)

else

//偶數個負數 去掉0}}

}else

}for( ;i < alen; i++)

}for(i = 0; i < alen; i++)}}

else

//偶數個負數

}for( ;i < alen; i++)

}for(i = 0; i < alen; i++)}}

else

//沒有正數 去掉負數絕對值最大的

}for( ;i < alen; i++)

}for(i = 0; i < alen; i++)}}

}}

return

maxproduct;

}int

main()

;

int maxproduct = getmaxproductanswer(a, 10

);

return0;

}

程式設計之美2 13 子陣列最大乘積

問題描述 給定乙個長度為n的整數陣列,只允許用乘法,不能用除法,計算任意 n 1 個數的組合乘積中最大的一組,並寫出演算法的時間複雜度。解法 1.暴力解法 o n 2 2.前字尾法 o n 3.統計法 o n 具體思路和 1.暴力解法 思路 利用兩層迴圈,依次刪掉乙個,其餘的做乘法,計算出最大的。1...

程式設計之美 2 13 子陣列的最大乘積

1.簡述 給定乙個長度為n的整數陣列,只允許用乘法,不能夠用除法,計算任意 n 1 個數的組合中乘積最大的一組,並寫出演算法時間複雜度。2.思路 題目中要求不能用除法,實際上就是否定了將所有數乘起來,然後分別去除每個數字的方法,實際上這種方法也不好實現,因為如果數字中有0的話,都乘起來就是0,還要除...

程式設計之美 2 13 子陣列的最大乘積

1.簡述 給定乙個長度為n的整數陣列,只允許用乘法,不能夠用除法,計算任意 n 1 個數的組合中乘積最大的一組,並寫出演算法時間複雜度。2.思路 題目中要求不能用除法,實際上就是否定了將所有數乘起來,然後分別去除每個數字的方法,實際上這種方法也不好實現,因為如果數字中有0的話,都乘起來就是0,還要除...