tft每日頭條

 > 生活

 > leetcode227怎麼樣

leetcode227怎麼樣

生活 更新时间:2025-01-16 02:03:20

在一個大小在 (0, 0) 到 (N-1, N-1) 的2D網格 grid 中,除了在 mines 中給出的單元為 0,其他每個單元都是 1。網格中包含 1 的最大的軸對齊加号标志是多少階?返回加号标志的階數。如果未找到加号标志,則返回 0。

一個 k" 階由 1 組成的“軸對稱”加号标志具有中心網格 grid[x][y] = 1 ,以及4個從中心向上、向下、向左、向右延伸,長度為 k-1,由 1 組成的臂。下面給出 k" 階“軸對稱”加号标志的示例。注意,隻有加号标志的所有網格要求為 1,别的網格可能為 0 也可能為 1。

k 階軸對稱加号标志示例:

階 1: 000 010 000 階 2: 00000 00100 01110 00100 00000 階 3: 0000000 0001000 0001000 0111110 0001000 0001000 0000000

示例 1:

輸入: N = 5, mines = [[4, 2]] 輸出: 2 解釋: 11111 11111 11111 11111 11011 在上面的網格中,最大加号标志的階隻能是2。一個标志已在圖中标出。

示例 2:

輸入: N = 2, mines = [] 輸出: 1 解釋: 11 11 沒有 2 階加号标志,有 1 階加号标志。

示例 3:

輸入: N = 1, mines = [[0, 0]] 輸出: 0 解釋: 0 沒有加号标志,返回 0 。

提示:

  1. 整數N 的範圍: [1, 500].
  2. mines 的最大長度為 5000.
  3. mines[i] 是長度為2的由2個 [0, N-1] 中的數組成.
  4. (另外,使用 C, C , 或者 C# 編程将以稍小的時間限制進行​​判斷.)

leetcode227怎麼樣(leetcode系列第八期最大加号标志)1

/**

* @param {number} N

* @param {number[][]} mines

* @return {number}

*/

var orderOfLargestPlusSign = function(N, mines) {

var g = [], c = [];

for(var i = 0; i < N; i ){

g[i] = [];

c[i] = [];

for(var j = 0; j < N; j ){

g[i][j] = 1;

c[i][j] = {};

}

}

for(var i in mines){

g[mines[i][0]][mines[i][1]] = 0;

}

// 每個點分為 上下左右

// 統計左

for(var i = 0; i < N; i ){

for(var j = 0; j < N; j ){

if(g[i][j] === 1){

c[i][j]["left"] = j===0 ? 1 : c[i][j - 1]["left"] 1;

}else{

c[i][j]["left"] = 0;

}

}

}

// 統計右

for(var i = 0; i < N; i ){

for(var j = N - 1; j >= 0; j--){

if(g[i][j] === 1){

c[i][j]["right"] = j===N-1 ? 1 : c[i][j 1]["right"] 1;

}else{

c[i][j]["right"] = 0;

}

}

}

// 統計上

for(var i = 0; i < N; i ){

for(var j = 0; j < N; j ){

if(g[j][i] === 1){

c[j][i]["up"] = j===0 ? 1 : c[j - 1][i]["up"] 1;

}else{

c[j][i]["up"] = 0;

}

}

}

// 統計下

for(var i = 0; i < N; i ){

for(var j = N - 1; j >= 0; j--){

if(g[j][i] === 1){

c[j][i]["down"] = j===N-1 ? 1 : c[j 1][i]["down"] 1;

}else{

c[j][i]["down"] = 0;

}

}

}

var result = 0;

for(var i = 0; i < N; i ){

for(var j = 0; j < N; j ){

result = Math.max(Math.min(c[i][j]["left"], c[i][j]["right"], c[i][j]["up"], c[i][j]["down"]), result);

}

}

return result;

};

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved