File tree 3 files changed +67
-0
lines changed
solution/0000-0099/0064.Minimum Path Sum
3 files changed +67
-0
lines changed Original file line number Diff line number Diff line change @@ -93,6 +93,30 @@ class Solution {
93
93
}
94
94
```
95
95
96
+ ### ** TypeScript**
97
+
98
+ ``` ts
99
+ function minPathSum(grid : number [][]): number {
100
+ let m = grid .length , n = grid [0 ].length ;
101
+ let dp = Array .from ({ length: m }, v => new Array (n ).fill (0 ));
102
+ dp [0 ][0 ] = grid [0 ][0 ];
103
+ for (let i = 1 ; i < m ; ++ i ) {
104
+ dp [i ][0 ] = dp [i - 1 ][0 ] + grid [i ][0 ];
105
+ }
106
+ for (let j = 1 ; j < n ; ++ j ) {
107
+ dp [0 ][j ] = dp [0 ][j - 1 ] + grid [0 ][j ];
108
+ }
109
+ // dp
110
+ for (let i = 1 ; i < m ; ++ i ) {
111
+ for (let j = 1 ; j < n ; ++ j ) {
112
+ let cur = grid [i ][j ];
113
+ dp [i ][j ] = cur + Math .min (dp [i - 1 ][j ], dp [i ][j - 1 ]);
114
+ }
115
+ }
116
+ return dp [m - 1 ][n - 1 ];
117
+ };
118
+ ```
119
+
96
120
### ** C++**
97
121
98
122
``` cpp
Original file line number Diff line number Diff line change @@ -81,6 +81,30 @@ class Solution {
81
81
}
82
82
```
83
83
84
+ ### ** TypeScript**
85
+
86
+ ``` ts
87
+ function minPathSum(grid : number [][]): number {
88
+ let m = grid .length , n = grid [0 ].length ;
89
+ let dp = Array .from ({ length: m }, v => new Array (n ).fill (0 ));
90
+ dp [0 ][0 ] = grid [0 ][0 ];
91
+ for (let i = 1 ; i < m ; ++ i ) {
92
+ dp [i ][0 ] = dp [i - 1 ][0 ] + grid [i ][0 ];
93
+ }
94
+ for (let j = 1 ; j < n ; ++ j ) {
95
+ dp [0 ][j ] = dp [0 ][j - 1 ] + grid [0 ][j ];
96
+ }
97
+ // dp
98
+ for (let i = 1 ; i < m ; ++ i ) {
99
+ for (let j = 1 ; j < n ; ++ j ) {
100
+ let cur = grid [i ][j ];
101
+ dp [i ][j ] = cur + Math .min (dp [i - 1 ][j ], dp [i ][j - 1 ]);
102
+ }
103
+ }
104
+ return dp [m - 1 ][n - 1 ];
105
+ };
106
+ ```
107
+
84
108
### ** C++**
85
109
86
110
``` cpp
Original file line number Diff line number Diff line change
1
+ function minPathSum ( grid : number [ ] [ ] ) : number {
2
+ let m = grid . length , n = grid [ 0 ] . length ;
3
+ let dp = Array . from ( { length : m } , v => new Array ( n ) . fill ( 0 ) ) ;
4
+ dp [ 0 ] [ 0 ] = grid [ 0 ] [ 0 ] ;
5
+ for ( let i = 1 ; i < m ; ++ i ) {
6
+ dp [ i ] [ 0 ] = dp [ i - 1 ] [ 0 ] + grid [ i ] [ 0 ] ;
7
+ }
8
+ for ( let j = 1 ; j < n ; ++ j ) {
9
+ dp [ 0 ] [ j ] = dp [ 0 ] [ j - 1 ] + grid [ 0 ] [ j ] ;
10
+ }
11
+ // dp
12
+ for ( let i = 1 ; i < m ; ++ i ) {
13
+ for ( let j = 1 ; j < n ; ++ j ) {
14
+ let cur = grid [ i ] [ j ] ;
15
+ dp [ i ] [ j ] = cur + Math . min ( dp [ i - 1 ] [ j ] , dp [ i ] [ j - 1 ] ) ;
16
+ }
17
+ }
18
+ return dp [ m - 1 ] [ n - 1 ] ;
19
+ } ;
You can’t perform that action at this time.
0 commit comments