Minimum buses to destination

Write codeHard35 minGoogle and Uber style

Your task

Each bus route is a fixed list of stops it serves; routes[i] is the list of stops served by bus i. Starting at bus stop source, return the least number of buses you must take to reach bus stop target. You may board any bus whose route includes your current stop and ride it to any other stop on that route. Return 0 if source equals target, and -1 if target is unreachable. There are at most 500 routes.

Examples

min_buses(routes: list[list[int]], source: int, target: int) -> int
Example 1
Inputmin_buses([[1, 2, 7], [3, 6, 7]], 1, 6)
Output2