1568. Minimum Number of Days to Disconnect Island
Difficulty: Hard
Topics: Array, Depth-First Search, Breadth-First Search, Matrix, Strongly Connected Component
You are given an m x n binary grid grid where 1 represents land and 0 represents water. An island is a maximal 4-directionally (horizontal or vertical) connected group of 1's.
The grid is said to be connected if we have exactly one island, otherwise is said disconnected.
In one day, we are allowed to change a****ny single land cell (1) into a water cell (0).
Return the minimum number of days to disconnect the grid.
Example 1:
Example 2:
Constraints:
Hint:
Solution:
We need to consider the following steps:
Check Initial Connectivity: First, check if the grid is already disconnected by determining if there is more than one island in the grid. If it's already disconnected, return 0.
Check If Single Removal Disconnects the Island: Iterate through each cell of the grid. Temporarily convert the cell from 1 to 0 (if it's 1) and check if the grid becomes disconnected by counting the number of islands. If converting a single cell disconnects the island, return 1.
Two Day Disconnection: If no single cell conversion disconnects the island, then the grid can be disconnected by converting any two adjacent land cells. Therefore, return 2.
Let's implement this solution in PHP: 1568. Minimum Number of Days to Disconnect Island
Explanation:
Contact Links
If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks ?. Your support would mean a lot to me!
If you want more helpful content like this, feel free to follow me:
The above is the detailed content of Minimum Number of Days to Disconnect Island. For more information, please follow other related articles on the PHP Chinese website!