Leetcode 1001 網格照明(map)

2022-09-20 15:54:10 字數 1527 閱讀 2462

在大小為 n x n 的網格 grid 上,每個單元格都有一盞燈,最初燈都處於 關閉 狀態。

給你乙個由燈的位置組成的二維陣列 lamps ,其中 lamps[i] = [rowi, coli] 表示 開啟 位於 grid[rowi][coli] 的燈。即便同一盞燈可能在 lamps 中多次列出,不會影響這盞燈處於 開啟 狀態。

當一盞燈處於開啟狀態,它將會照亮 自身所在單元格 以及同一 行 、同一 列 和兩條 對角線 上的 所有其他單元格 。

另給你乙個二維陣列 queries ,其中 queries[j] = [rowj, colj] 。對於第 j 個查詢,如果單元格 [rowj, colj] 是被照亮的,則查詢結果為 1 ,否則為 0 。在第 j 次查詢之後 [按照查詢的順序] ,關閉 位於單元格 grid[rowj][colj] 上及相鄰 8 個方向上(與單元格 grid[rowi][coli] 共享角或邊)的任何燈。

返回乙個整數陣列 ans 作為答案, ans[j] 應等於第 j 次查詢 queries[j] 的結果,1 表示照亮,0 表示未照亮。

示例 1:

輸入:n = 5, lamps = [[0,0],[4,4]], queries = [[1,1],[1,0]]

輸出:[1,0]

解釋:最初所有燈都是關閉的。在執行查詢之前,開啟位於 [0, 0] 和 [4, 4] 的燈。第 0 次查詢檢查 grid[1][1] 是否被照亮(藍色方框)。該單元格被照亮,所以 ans[0] = 1 。然後,關閉紅色方框中的所有燈。

第 1 次查詢檢查 grid[1][0] 是否被照亮(藍色方框)。該單元格沒有被照亮,所以 ans[1] = 0 。然後,關閉紅色矩形中的所有燈。

示例 2:

輸入:n = 5, lamps = [[0,0],[4,4]], queries = [[1,1],[1,1]]

輸出:[1,1]

示例 3:

輸入:n = 5, lamps = [[0,0],[0,4]], queries = [[0,4],[0,1],[1,4]]

輸出:[1,1,0]

注意到資料範圍到了1e9,直接用map模擬。一共開了5個map,分別記錄:[x, y]這個位置有沒有燈,x這一行/y這一列被覆蓋多少次,[x - y]/[x + y - n]這兩個斜行被覆蓋多少次。每次修改直接暴力維護即可。注意乙個位置可能開燈多次,需要判斷,否則會造成覆蓋次數的額外增加。

class solution , , , , , , , , };

vectorgridillumination(int n, vector>& lamps, vector>& queries)

for(int i = 0; i < lenq; i++) else if(a.find(qx - qy) != a.end() && a[qx - qy] > 0 || b.find(qx + qy - n) != b.end() && b[qx + qy - n] > 0) else

for(int j = 0; j < 9; j++) }}

return ans;

}};

1001 網格照明 2022 02

在大小為n x n的網格grid上,每個單元格都有一盞燈,最初燈都處於關閉狀態。給你乙個由燈的位置組成的二維陣列lamps,其中lamps i rowi,coli 表示開啟位於grid rowi coli 的燈。即便同一盞燈可能在lamps中多次列出,不會影響這盞燈處於開啟狀態。當一盞燈處於開啟狀態...

960網格系統

可以幫助我們在ps中快速布局 12欄,16欄,24欄 我們也可以利用css樣式表模板快速寫網頁 兩欄布局網頁部分 id class container 12 class grid 12 工具欄div div div class container 12 id header class grid 2 ...

1 網格系統

第乙個例子 建立一行 然後,新增是需要的列 col 類中設定 第乙個星號 表示響應的裝置 sm,md,lg 或 xl,第二個星號 表示乙個數字,同一行的數字相加為 12。第二個例子 不在每個col上新增數字,讓 bootstrap 自動處理布局,同一行的每個列寬度相等 兩個 col 每個就為 50 ...