1334. 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 (LeetCode 1334) 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.

How to solve 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 Graph Deep Copy and Cloning problem, part of Graph Traversal Patterns (DFS & BFS). Learn to deep copy and clone graph structures using DFS/BFS with visited mapping.

Work towards the solution in these steps:

  1. Consider representing the cities and edges as a graph to model connections and distances effectively.
  2. To find the number of reachable cities within a distance threshold, think about computing shortest paths from each city to all others.
  3. Since the graph is weighted, explore algorithms suited for shortest path computations, such as Dijkstra's algorithm, rather than simple BFS or DFS.

The reference solution runs in O(n^3) time and O(n^2) space.

The Find the City With the Smallest Number of Neighbors at a Threshold Distance solution and editorial walks through the full approach with reference code.

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

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:

Find the City With the Smallest Number of Neighbors at a Threshold Distance FAQ

What is the LeetCode number of 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 LeetCode problem 1334, rated Medium.

What pattern is used to solve 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 Graph Deep Copy and Cloning problem. It belongs to the Graph Traversal Patterns (DFS & BFS) pattern, in the Deep Copy / Cloning subpattern.

What is the time complexity of Find the City With the Smallest Number of Neighbors at a Threshold Distance?

The reference solution runs in O(n^3) time and O(n^2) space.

Which companies ask 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 has been reported in interviews at Citrix.

Preparing this workspace.