給定乙個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。 返回你可以獲得的最大乘積。
思路:遞迴方法
比如4,分割為1,2,3然後再考慮子問題即可,返回其中最大的即可。
};記憶搜尋演算法:
class solution
int process(int n)
//res計算的就是memo[n]
memo[n] = res;
return res;
}public:
int integerbreak(int n)
};
動態規劃:
class solution
public:
int integerbreak(int n)
return memo[n];
}};
更多:279,91,62,6 力扣343 整數拆分 題解
給定乙個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。返回你可以獲得的最大乘積。示例 1 輸入 2 輸出 1 解釋 2 1 1,1 1 1。示例 2 輸入 10 輸出 36 解釋 10 3 3 4,3 3 4 36。說明 你可以假設 n 不小於 2 且不大於 58。呃這道題其實...
343 整數拆分
題目鏈結 首先根據題目很容易的到的乙個點是 要使乘積最大能選擇的 數字只能是1 2 3 之後選擇的任何乙個數都可以拆分成這三個的乘積所以只要選這三個就可以。證明方法就是 假設輸入的數為x在x 4 的時候 2 x 2 x恆成立因此在選擇 乘積大於4的時候總是能選擇乙個 x 和 x 2 拆分這個資料 如...
343 整數拆分
給定乙個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。返回你可以獲得的最大乘積。示例 1 輸入 2 輸出 1 解釋 2 1 1,1 1 1。示例 2 輸入 10 輸出 36 解釋 10 3 3 4,3 3 4 36。說明 你可以假設 n 不小於 2 且不大於 58。求最值問題最...