Skip to content

Commit 0c184a5

Browse files
添加 0062.不同路径.md C语言版本
1 parent 518b48d commit 0c184a5

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

problems/0062.不同路径.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,42 @@ var uniquePaths = function(m, n) {
347347
};
348348
```
349349

350+
### C
351+
```c
352+
//初始化dp数组
353+
int **initDP(int m, int n) {
354+
//动态开辟dp数组
355+
int **dp = (int**)malloc(sizeof(int *) * m);
356+
int i, j;
357+
for(i = 0; i < m; ++i) {
358+
dp[i] = (int *)malloc(sizeof(int) * n);
359+
}
360+
361+
//从0,0到i,0只有一种走法,所以dp[i][0]都是1,同理dp[0][j]也是1
362+
for(i = 0; i < m; ++i)
363+
dp[i][0] = 1;
364+
for(j = 0; j < n; ++j)
365+
dp[0][j] = 1;
366+
return dp;
367+
}
368+
369+
int uniquePaths(int m, int n){
370+
//dp数组,dp[i][j]代表从dp[0][0]到dp[i][j]有几种走法
371+
int **dp = initDP(m, n);
372+
373+
int i, j;
374+
//到达dp[i][j]只能从dp[i-1][j]和dp[i][j-1]出发
375+
//dp[i][j] = dp[i-1][j] + dp[i][j-1]
376+
for(i = 1; i < m; ++i) {
377+
for(j = 1; j < n; ++j) {
378+
dp[i][j] = dp[i-1][j] + dp[i][j-1];
379+
}
380+
}
381+
int result = dp[m-1][n-1];
382+
free(dp);
383+
return result;
384+
}
385+
```
350386
351387
-----------------------
352388
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>

0 commit comments

Comments
 (0)