leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
1139.cpp (922B)
0 class Solution { 1 public: 2 int largest1BorderedSquare(vector<vector<int>> &grid) { 3 static int top[101][101], left[101][101]; 4 const int n = size(grid), m = size(grid[0]); 5 6 for (int i = 1; i <= n; i++) { 7 for (int j = 1; j <= m; j++) { 8 left[i][j] = grid[i - 1][j - 1] ? left[i][j - 1] + 1 : 0; 9 top[i][j] = grid[i - 1][j - 1] ? top[i - 1][j] + 1 : 0; 10 } 11 } 12 13 for (int s = min(m, n); s > 0; s--) { 14 for (int i = 0; i <= n - s; i++) { 15 for (int j = 0; j <= m - s; j++) { 16 if (top[i + s][j + 1] < s) continue; 17 if (top[i + s][j + s] < s) continue; 18 if (left[i + 1][j + s] < s) continue; 19 if (left[i + s][j + s] < s) continue; 20 return s * s; 21 } 22 } 23 } 24 25 return 0; 26 } 27 };