https://leetcode.com/problems/largest-plus-sign/description/
解题思路:
- 判断当前dp[i][j]的最大plus sign by using while(j-dir>=0 && j+dir<N && i-dir>=0 && i+dir<N && grid[i][j-dir]==1 && grid[i][j+dir]==1 && grid[i-dir][j]==1 && grid[i+dir][j]==1)
代码如下:
class Solution {
public int orderOfLargestPlusSign(int N, int[][] mines) {
int[][] grid = new int[N][N];
int ans = 0;
for(int i = 0; i < N; i++){
Arrays.fill(grid[i], 1);
}
for(int[] m : mines){
grid[m[0]][m[1]] = 0;
}
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
if(grid[i][j] == 1){
int dir = 1;
while(j-dir>=0 && j+dir<N && i-dir>=0 && i+dir<N && grid[i][j-dir]==1 && grid[i][j+dir]==1 && grid[i-dir][j]==1 && grid[i+dir][j]==1){
dir++;
}
ans = Math.max(ans, dir);
}
}
}
return ans;
}
}