2577. Minimum Time to Visit a Cell In a Grid
Minimum Time to Visit a Cell In a Grid (LeetCode 2577) is a Hard 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 Shortest Path (Dijkstra's Algorithm) subpattern.
How to solve Minimum Time to Visit a Cell In a Grid
Minimum Time to Visit a Cell In a Grid is a Dijkstra's Algorithm for Shortest Path problem, part of Graph Traversal Patterns (DFS & BFS). Master Dijkstra's algorithm for finding shortest paths in weighted graphs with non-negative edges.
Work towards the solution in these steps:
- Try using some algorithm that can find the shortest paths on a graph.
- Consider the case where you have to go back and forth between two cells of the matrix to unlock some other cells.
The reference solution runs in O(m * n * log(m * n)) time and O(m * n) space.
The Minimum Time to Visit a Cell In a Grid solution and editorial walks through the full approach with reference code.
Problem statement
You are given a m x n matrix grid consisting of non-negative integers where grid[row][col] represents the minimum time required to be able to visit the cell (row, col), which means you can visit the cell (row, col) only when the time you visit it is greater than or equal to grid[row][col].
You are standing in the top-left cell of the matrix in the 0th second, and you must move to any adjacent cell in the four directions: up, down, left, and right. Each move you make takes 1 second.
Return the minimum time required in which you can visit the bottom-right cell of the matrix. If you cannot visit the bottom-right cell, then return -1.
Example 1:
Input: grid = [[0,1,3,2],[5,1,2,5],[4,3,8,6]] Output: 7 Explanation: One of the paths that we can take is the following: - at t = 0, we are on the cell (0,0). - at t = 1, we move to the cell (0,1). It is possible because grid[0][1] <= 1. - at t = 2, we move to the cell (1,1). It is possible because grid[1][1] <= 2. - at t = 3, we move to the cell (1,2). It is possible because grid[1][2] <= 3. - at t = 4, we move to the cell (1,1). It is possible because grid[1][1] <= 4. - at t = 5, we move to the cell (1,2). It is possible because grid[1][2] <= 5. - at t = 6, we move to the cell (1,3). It is possible because grid[1][3] <= 6. - at t = 7, we move to the cell (2,3). It is possible because grid[2][3] <= 7. The final time is 7. It can be shown that it is the minimum time possible.
Example 2:
Input: grid = [[0,2,4],[3,2,1],[1,0,4]] Output: -1 Explanation: There is no path from the top left to the bottom-right cell.
Constraints:
- m == grid.length
- n == grid[i].length
- 2 <= m, n <= 1000
- 4 <= m n <= 105
- 0 <= grid[i][j] <= 105
- grid[0][0] == 0
.spoilerbutton {display:block; border:dashed; padding: 0px 0px; margin:10px 0px; font-size:150%; font-weight: bold; color:#000000; background-color:cyan; outline:0; } .spoiler {overflow:hidden;} .spoiler > div {-webkit-transition: all 0s ease;-moz-transition: margin 0s ease;-o-transition: all 0s ease;transition: margin 0s ease;} .spoilerbutton[value="Show Message"] + .spoiler > div {margin-top:-500%;} .spoilerbutton[value="Hide Message"] + .spoiler {padding:5px;}
Topics and companies
Topics: Array, Breadth-First Search, Graph, Heap (Priority Queue), Matrix, Shortest Path.
How to practise Minimum Time to Visit a Cell In a Grid on Thita.ai
Starter code is provided in C, C#, C++, Go, Java, JavaScript and Python. 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(m * n * log(m * n)) time and O(m * n) space.
Open Minimum Time to Visit a Cell In a Grid in the code editor, or read the Minimum Time to Visit a Cell In a Grid editorial for a worked solution with its approach and complexity analysis.
Where Minimum Time to Visit a Cell In a Grid sits in the DSA pattern sheet
- Graph Traversal Patterns (DFS & BFS) pattern guide
- Shortest Path (Dijkstra's Algorithm) subpattern
- The full DSA patterns sheet
Problems related to Minimum Time to Visit a Cell In a Grid
Other problems that use the same Shortest Path (Dijkstra's Algorithm) and Graph Traversal Patterns (DFS & BFS) techniques:
- Find the Safest Path in a Grid — Medium, same subpattern
- Minimum Obstacle Removal to Reach Corner — Hard, same subpattern
- Minimum Weighted Subgraph With the Required Paths — Hard, same subpattern
- Network Delay Time — Medium, same subpattern
- Number of Ways to Arrive at Destination — Medium, same subpattern
- Path with Maximum Probability — Medium, same subpattern
Minimum Time to Visit a Cell In a Grid FAQ
What is the LeetCode number of Minimum Time to Visit a Cell In a Grid?
Minimum Time to Visit a Cell In a Grid is LeetCode problem 2577, rated Hard.
What pattern is used to solve Minimum Time to Visit a Cell In a Grid?
Minimum Time to Visit a Cell In a Grid is a Dijkstra's Algorithm for Shortest Path problem. It belongs to the Graph Traversal Patterns (DFS & BFS) pattern, in the Shortest Path (Dijkstra's Algorithm) subpattern.
What is the time complexity of Minimum Time to Visit a Cell In a Grid?
The reference solution runs in O(m * n * log(m * n)) time and O(m * n) space.