Class Solution
- java.lang.Object
-
- g1001_1100.s1001_grid_illumination.Solution
-
public class Solution extends Object
1001 - Grid Illumination.Hard
There is a 2D
grid
of sizen x n
where each cell of this grid has a lamp that is initially turned off.You are given a 2D array of lamp positions
lamps
, wherelamps[i] = [rowi, coli]
indicates that the lamp atgrid[rowi][col<sub>i</sub>]
is turned on. Even if the same lamp is listed more than once, it is turned on.When a lamp is turned on, it illuminates its cell and all other cells in the same row, column, or diagonal.
You are also given another 2D array
queries
, wherequeries[j] = [rowj, colj]
. For thejth
query, determine whethergrid[rowj][col<sub>j</sub>]
is illuminated or not. After answering thejth
query, turn off the lamp atgrid[rowj][col<sub>j</sub>]
and its 8 adjacent lamps if they exist. A lamp is adjacent if its cell shares either a side or corner withgrid[rowj][col<sub>j</sub>]
.Return an array of integers
ans
, whereans[j]
should be1
if the cell in thejth
query was illuminated, or0
if the lamp was not.Example 1:
Input: n = 5, lamps = [[0,0],[4,4]], queries = [[1,1],[1,0]]
Output: [1,0]
Explanation: We have the initial grid with all lamps turned off. In the above picture we see the grid after turning on the lamp at grid[0][0] then turning on the lamp at grid[4][4]. The 0th query asks if the lamp at grid[1][1] is illuminated or not (the blue square). It is illuminated, so set ans[0] = 1. Then, we turn off all lamps in the red square.
The 1st query asks if the lamp at grid[1][0] is illuminated or not (the blue square). It is not illuminated, so set ans[1] = 0. Then, we turn off all lamps in the red rectangle.
Example 2:
Input: n = 5, lamps = [[0,0],[4,4]], queries = [[1,1],[1,1]]
Output: [1,1]
Example 3:
Input: n = 5, lamps = [[0,0],[0,4]], queries = [[0,4],[0,1],[1,4]]
Output: [1,1,0]
Constraints:
1 <= n <= 109
0 <= lamps.length <= 20000
0 <= queries.length <= 20000
lamps[i].length == 2
0 <= rowi, coli < n
queries[j].length == 2
0 <= rowj, colj < n
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int[]
gridIllumination(int n, int[][] lamps, int[][] queries)
-