File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff 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>
You can’t perform that action at this time.
0 commit comments