-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path764.js
42 lines (41 loc) · 1.04 KB
/
764.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var orderOfLargestPlusSign = function(N, mines) {
let deads = [];
mines.forEach((mine)=>{
deads[mine[0]*N+mine[1]]=1;
})
let dp=[];
//horizontal
for(let r=0;r<N;r++){
let count = 0;
for(let c=0;c<N;c++){
dp[r] = dp[r]||[];
count = deads[r*N+c]?0:count+1;
dp[r][c] = count;
}
count = 0;
for(let c=N-1;c>=0;c--){
count = deads[r*N+c]?0:count+1;
dp[r][c] = Math.min(dp[r][c],count);
}
}
//vertical
for(let c=0;c<N;c++){
let count = 0;
for(let r=0;r<N;r++){
count = deads[r*N+c]?0:count+1;
dp[r][c] = Math.min(dp[r][c],count);
}
count = 0;
for(let r=N-1;r>=0;r--){
count = deads[r*N+c]?0:count+1;
dp[r][c] = Math.min(dp[r][c],count);
}
}
let maxCount = 0;
for(let r=0;r<N;r++){
for(let c=0;c<N;c++){
maxCount = Math.max(dp[r][c],maxCount);
}
}
return maxCount;
};