File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[][] } grid
3
+ * @param {number[][] } moveCost
4
+ * @return {number }
5
+ */
6
+ var minPathCost = function ( grid , moveCost ) {
7
+ const m = grid . length , n = grid [ 0 ] . length
8
+ const memo = Array . from ( { length : 2 } , ( ) => Array ( n ) )
9
+ for ( let i = 0 ; i < n ; i ++ ) {
10
+ memo [ 0 ] [ i ] = grid [ 0 ] [ i ]
11
+ }
12
+ let cur = 0
13
+ for ( let i = 0 ; i < m - 1 ; i ++ ) {
14
+ const nxt = cur ^ 1
15
+ for ( let t = 0 ; t < n ; t ++ ) {
16
+ memo [ nxt ] [ t ] = Infinity
17
+ }
18
+ for ( let j = 0 ; j < n ; j ++ ) {
19
+ const v = grid [ i ] [ j ]
20
+ for ( let k = 0 ; k < n ; k ++ ) {
21
+ const cost = moveCost [ v ] [ k ]
22
+ memo [ nxt ] [ k ] = Math . min ( memo [ nxt ] [ k ] , memo [ cur ] [ j ] + grid [ i + 1 ] [ k ] + cost )
23
+ }
24
+ }
25
+ cur ^= 1
26
+ }
27
+
28
+ return Math . min ( ...memo [ cur ] )
29
+ } ;
You can’t perform that action at this time.
0 commit comments