From 87d3129bde890c3a178d922b62a03362ecc72004 Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Wed, 27 Nov 2024 22:32:48 +0900 Subject: [PATCH] https://leetcode.com/problems/shortest-distance-after-road-addition-queries-i --- ..._distance_after_road_addition_queries_i.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 medium/shortest_distance_after_road_addition_queries_i.py diff --git a/medium/shortest_distance_after_road_addition_queries_i.py b/medium/shortest_distance_after_road_addition_queries_i.py new file mode 100644 index 0000000..860d20a --- /dev/null +++ b/medium/shortest_distance_after_road_addition_queries_i.py @@ -0,0 +1,22 @@ +# https://leetcode.com/problems/shortest-distance-after-road-addition-queries-i +from typing import List + +class Solution: + def shortestDistanceAfterQueries(self, n: int, queries: List[List[int]]) -> List[int]: + road = [[i + 1] for i in range(n - 1)] + result = [] + def recurse(memo, curr = 0): + if curr >= n -1: + return 0 + if memo[curr] != -1: + return memo[curr] + memo[curr] = min(n, *[recurse(memo, dest) + 1 for dest in road[curr]]) + return memo[curr] + + for [start, end] in queries: + memo = [-1] * (n -1) + road[start].append(end) + result.append(recurse(memo)) + return result + +