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:

  1. Try using some algorithm that can find the shortest paths on a graph.
  2. 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

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:

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.

Preparing this workspace.