Grid Illumination LeetCode solution in Python
1class Solution:2def gridIllumination(3self, n: int, lamps: List[List[int]], queries: List[List[int]]4) -> List[int]:5rows = collections.Counter()6cols = collections.Counter()7diags1 = collections.Counter()8diags2 = collections.Counter()9lamps = {tuple(lamp) for lamp in lamps}1011for i, j in lamps:12rows[i] += 113cols[j] += 114diags1[i + j] += 115diags2[i - j] += 11617ans = []18directions = (19(-1, -1),20(-1, 0),21(-1, 1),22(0, -1),23(0, 0),24(0, 1),25(1, -1),26(1, 0),27(1, 1),28)2930for i, j in queries:31if rows[i] or cols[j] or diags1[i + j] or diags2[i - j]:32ans.append(1)33else:34ans.append(0)3536for di, dj in directions:37newI, newJ = i + di, j + dj38if (newI, newJ) not in lamps:39continue40lamps.remove((newI, newJ))41rows[newI] -= 142cols[newJ] -= 143diags1[newI + newJ] -= 144diags2[newI - newJ] -= 14546return ans