Find the City With the Smallest Number of Neighbors at a Threshold Distance
Find the City With the Smallest Number of Neighbors at a Threshold Distance is a Medium Data Structures and Algorithms interview problem you can solve, run and submit on Thita.ai. It belongs to the Graph Traversal Patterns (DFS & BFS) pattern, in the Deep Copy / Cloning subpattern.
Problem statement
There are n cities numbered from 0 to n-1. Given the array edges where edges[i] = [fromi, toi, weighti] represents a bidirectional and weighted edge between cities fromi and toi, and given the integer distanceThreshold.
Return the city with the smallest number of cities that are reachable through some path and whose distance is at most distanceThreshold, If there are multiple such cities, return the city with the greatest number.
Notice that the distance of a path connecting cities i and j is equal to the sum of the edges' weights along that path.
Example 1: Input: n = 4, edges = [[0,1,3],[1,2,1],[1,3,4],[2,3,1]], distanceThreshold = 4 Output: 3 Explanation: The figure above describes the graph. The neighboring cities at a distanceThreshold = 4 for each city are: City 0 -> [City 1, City 2] City 1 -> [City 0, City 2, City 3] City 2 -> [City 0, City 1, City 3] City 3 -> [City 1, City 2] Cities 0 and 3 have 2 neighboring cities at a distanceThreshold = 4, but we have to return city 3 since it has the greatest number.
Example 2: Input: n = 5, edges = [[0,1,2],[0,4,8],[1,2,3],[1,4,2],[2,3,1],[3,4,1]], distanceThreshold = 2 Output: 0 Explanation: The figure above describes the graph. The neighboring cities at a distanceThreshold = 2 for each city are: City 0 -> [City 1] City 1 -> [City 0, City 4] City 2 -> [City 3, City 4] City 3 -> [City 2, City 4] City 4 -> [City 1, City 2, City 3] The city 0 has 1 neighboring city at a distanceThreshold = 2.
Constraints: 2 <= n <= 100 1 <= edges.length <= n (n - 1) / 2 edges[i].length == 3 0 <= fromi < toi < n 1 <= weighti, distanceThreshold <= 10^4 All pairs (fromi, toi) are distinct.
Topics and companies
Topics: Graph.
Reported in interviews at Citrix.
How to practise Find the City With the Smallest Number of Neighbors at a Threshold Distance on Thita.ai
Starter code is provided in C, C#, C++, dart, elixir, erlang, Go, Java, JavaScript, Kotlin, PHP, Python, python3, racket, Ruby, Rust, Scala, Swift and TypeScript. Your solution runs against 5 test cases for this problem, with the AI coach available for a hint when you are stuck rather than a finished answer. The reference solution runs in O(n^3) time and O(n^2) space.
Open Find the City With the Smallest Number of Neighbors at a Threshold Distance in the code editor, or read the Find the City With the Smallest Number of Neighbors at a Threshold Distance editorial for a worked solution with its approach and complexity analysis.
Where Find the City With the Smallest Number of Neighbors at a Threshold Distance sits in the DSA pattern sheet
- Graph Traversal Patterns (DFS & BFS) pattern guide
- Deep Copy / Cloning subpattern
- The full DSA patterns sheet
- All coding practice problems
Problems related to Find the City With the Smallest Number of Neighbors at a Threshold Distance
Other problems that use the same Deep Copy / Cloning and Graph Traversal Patterns (DFS & BFS) techniques:
- Clone Graph — Medium, same subpattern
- Clone N-ary Tree — Medium, same subpattern
- Copy List with Random Pointer — Medium, same subpattern
- Accounts Merge — Medium, same pattern
- Alien Dictionary — Hard, same pattern
- All Paths from Source Lead to Destination — Medium, same pattern