java.lang.Object
g2501_2600.s2577_minimum_time_to_visit_a_cell_in_a_grid.Solution

public class Solution extends Object
2577 - Minimum Time to Visit a Cell In a Grid.<p>Hard</p> <p>You are given a <code>m x n</code> matrix <code>grid</code> consisting of <strong>non-negative</strong> integers where <code>grid[row][col]</code> represents the <strong>minimum</strong> time required to be able to visit the cell <code>(row, col)</code>, which means you can visit the cell <code>(row, col)</code> only when the time you visit it is greater than or equal to <code>grid[row][col]</code>.</p> <p>You are standing in the <strong>top-left</strong> cell of the matrix in the <code>0<sup>th</sup></code> second, and you must move to <strong>any</strong> adjacent cell in the four directions: up, down, left, and right. Each move you make takes 1 second.</p> <p>Return <em>the <strong>minimum</strong> time required in which you can visit the bottom-right cell of the matrix</em>. If you cannot visit the bottom-right cell, then return <code>-1</code>.</p> <p><strong>Example 1:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2023/02/14/yetgriddrawio-8.png" alt="" /></p> <p><strong>Input:</strong> grid = [[0,1,3,2],[5,1,2,5],[4,3,8,6]]</p> <p><strong>Output:</strong> 7</p> <p><strong>Explanation:</strong> One of the paths that we can take is the following:</p> <ul> <li>at t = 0, we are on the cell (0,0).</li> <li>at t = 1, we move to the cell (0,1). It is possible because grid[0][1] <= 1.</li> <li>at t = 2, we move to the cell (1,1). It is possible because grid[1][1] <= 2.</li> <li>at t = 3, we move to the cell (1,2). It is possible because grid[1][2] <= 3.</li> <li>at t = 4, we move to the cell (1,1). It is possible because grid[1][1] <= 4.</li> <li>at t = 5, we move to the cell (1,2). It is possible because grid[1][2] <= 5.</li> <li>at t = 6, we move to the cell (1,3). It is possible because grid[1][3] <= 6.</li> <li>at t = 7, we move to the cell (2,3). It is possible because grid[2][3] <= 7.</li> </ul> <p>The final time is 7. It can be shown that it is the minimum time possible.</p> <p><strong>Example 2:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2023/02/14/yetgriddrawio-9.png" alt="" /></p> <p><strong>Input:</strong> grid = [[0,2,4],[3,2,1],[1,0,4]]</p> <p><strong>Output:</strong> -1</p> <p><strong>Explanation:</strong> There is no path from the top left to the bottom-right cell.</p> <p><strong>Constraints:</strong></p> <ul> <li><code>m == grid.length</code></li> <li><code>n == grid[i].length</code></li> <li><code>2 <= m, n <= 1000</code></li> <li><code>4 <= m * n <= 10<sup>5</sup></code></li> <li><code>0 <= grid[i][j] <= 10<sup>5</sup></code></li> <li><code>grid[0][0] == 0</code></li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • minimumTime

      public int minimumTime(int[][] grid)