mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-08-06 18:24:23 +08:00
1.3 KiB
1.3 KiB
class Solution {
public:
int findCheapestPrice(int n, vector<vector<int>>& flights, int src, int dst, int k) {
vector<int> minDist(n , INT_MAX/2);
minDist[src] = 0;
vector<int> minDist_copy(n); // 用来记录每一次遍历的结果
for (int i = 1; i <= k + 1; i++) {
minDist_copy = minDist; // 获取上一次计算的结果
for (auto &f : flights) {
int from = f[0];
int to = f[1];
int price = f[2];
if (minDist[to] > minDist_copy[from] + price) minDist[to] = minDist_copy[from] + price;
}
}
int result = minDist[dst] == INT_MAX/2 ? -1 : minDist[dst];
return result;
}
};
class Solution {
public:
int findCheapestPrice(int n, vector<vector<int>>& flights, int src, int dst, int k) {
vector<int> minDist(n , INT_MAX/2);
minDist[src] = 0;
for (int i = 1; i <= k + 1; i++) {
for (auto &f : flights) {
int from = f[0];
int to = f[1];
int price = f[2];
if (minDist[to] > minDist[from] + price) minDist[to] = minDist[from] + price;
}
}
int result = minDist[dst] == INT_MAX/2 ? -1 : minDist[dst];
return result;
}
};