package com
.wsq
.leetcode
;
import java
.util
.Arrays
;
public class FindCheapestPrice {
public int findCheapestPrice(int n
, int[][] flights
, int src
, int dst
, int K
) {
int[][] f
= new int[n
][K
+ 1];
for(int i
= 0; i
< n
; i
++){
Arrays
.fill(f
[i
], Integer
.MAX_VALUE
);
}
for(int[] flight
: flights
){
if(flight
[0] == src
){
f
[flight
[1]][0] = flight
[2];
}
}
for(int i
= 0; i
<= K
; i
++){
f
[src
][i
] = 0;
}
for(int i
= 1; i
<= K
; i
++){
for(int[] flight
: flights
){
if(f
[flight
[0]][i
-1] != Integer
.MAX_VALUE
){
f
[flight
[1]][i
] = Math
.min(f
[flight
[1]][i
], f
[flight
[0]][i
-1] + flight
[2]);
}
}
}
return f
[dst
][K
] == Integer
.MAX_VALUE
? -1 : f
[dst
][K
];
}
}
转载请注明原文地址: https://lol.8miu.com/read-22906.html