Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    1001 - Grid Illumination.

    Hard

    There is a 2D grid of size n 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, where <code>lampsi = row<sub>i</sub>, col<sub>i</sub></code> indicates that the lamp at <code>gridcol<sub>i</sub></code> 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, where <code>queriesj = row<sub>j</sub>, col<sub>j</sub></code>. For the <code>j<sup>th</sup></code> query, determine whether <code>gridcol<sub>j</sub></code> is illuminated or not. After answering the <code>j<sup>th</sup></code> query, turn off the lamp at <code>gridcol<sub>j</sub></code> and its 8 adjacent lamps if they exist. A lamp is adjacent if its cell shares either a side or corner with <code>gridcol<sub>j</sub></code>.

    Return an array of integers ans, where ans[j] should be 1 if the cell in the <code>j<sup>th</sup></code> query was illuminated, or 0 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 grid0 then turning on the lamp at grid4. The 0<sup>th</sup> query asks if the lamp at grid1 is illuminated or not (the blue square). It is illuminated, so set ans0 = 1. Then, we turn off all lamps in the red square. The 1<sup>st</sup> query asks if the lamp at grid0 is illuminated or not (the blue square). It is not illuminated, so set ans1 = 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:

    • <code>1 <= n <= 10<sup>9</sup></code>

    • 0 &lt;= lamps.length &lt;= 20000

    • 0 &lt;= queries.length &lt;= 20000

    • lamps[i].length == 2

    • <code>0 <= row<sub>i</sub>, col<sub>i</sub>< n</code>

    • queries[j].length == 2

    • <code>0 <= row<sub>j</sub>, col<sub>j</sub>< n</code>

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final IntArray gridIllumination(Integer n, Array<IntArray> lamps, Array<IntArray> queries)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait