劍指offer14 整數拆分

2021-09-26 16:05:11 字數 623 閱讀 5934

題目描述:

給定乙個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。 返回你可以獲得的最大乘積。

例子:輸入: 2

輸出: 1

解釋: 2 = 1 + 1, 1 × 1 = 1。

思路1:暴力遞迴

class solution 

int process(int n)

int max = 0;

for(int i = 2 ; i <= n-1 ; i++)

return max;

}}

思路二:優化記憶化搜尋

class solution 

int process(int n)

if(memery[n] != 0)

int max = 0;

for(int i = 2 ; i <= n-1 ; i++)

memery[n] = max;

return max;

}}

思路三:動態規劃

class solution 

} return dp[n];

}}

劍指offer 14 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。解法 首先明確下圖的公式 所以我們可以使用遞迴去求解這個問題,同時要注意當指數為負數時候對結果的影響 class solution unsigned int new exponent uns...

劍指offer 14 剪繩子

分析 本題可以用動態規劃,也可以用貪心法。動態規劃 設f n 表示當繩子長n時可以得到的最大乘積,那麼假設在i處切一刀,就會得到數學式子f n max f i f n i 02等於4,但是當n大於等於5時,我們就要拆成盡可能多的3和剩下的2。如果要證明,我們可以證明當n大於5時,有3 n 3 2 n...

劍指offer 14 剪繩子

這種文章網上很多,沒什麼營養,我只是自己記錄一下。雖然現在不找工作了,但以後演算法能力肯定需要加強,想著能不能每天堅持一道題,其實真做起來還有點難 劍指offer以前都是邊看答案邊記下來,現在能不能靠自己寫出來呢。時間複雜度為o n2 空間複雜度為o n 有一點要注意,m不是乙個給定的引數。思路是,...