mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加 0343.整数拆分.md C语言解法
This commit is contained in:
@ -271,5 +271,40 @@ var integerBreak = function(n) {
|
||||
};
|
||||
```
|
||||
|
||||
C:
|
||||
```c
|
||||
//初始化DP数组
|
||||
int *initDP(int num) {
|
||||
int* dp = (int*)malloc(sizeof(int) * (num + 1));
|
||||
int i;
|
||||
for(i = 0; i < num + 1; ++i) {
|
||||
dp[i] = 0;
|
||||
}
|
||||
return dp;
|
||||
}
|
||||
|
||||
//取三数最大值
|
||||
int max(int num1, int num2, int num3) {
|
||||
int tempMax = num1 > num2 ? num1 : num2;
|
||||
return tempMax > num3 ? tempMax : num3;
|
||||
}
|
||||
|
||||
int integerBreak(int n){
|
||||
int *dp = initDP(n);
|
||||
//初始化dp[2]为1
|
||||
dp[2] = 1;
|
||||
|
||||
int i;
|
||||
for(i = 3; i <= n; ++i) {
|
||||
int j;
|
||||
for(j = 1; j < i - 1; ++j) {
|
||||
//取得上次循环:dp[i],原数相乘,或j*dp[]i-j] 三数中的最大值
|
||||
dp[i] = max(dp[i], j * (i - j), j * dp[i - j]);
|
||||
}
|
||||
}
|
||||
return dp[n];
|
||||
}
|
||||
```
|
||||
|
||||
-----------------------
|
||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||
|
Reference in New Issue
Block a user