#P1529. 2023.12.20-秋招-第三题-平面灯阵中寻找最大正方形边界

2023.12.20-秋招-第三题-平面灯阵中寻找最大正方形边界

本题考察的LeetCode原题

LeetCode 1139. 最大的以 1 为边界的正方形

题目描述

现在有一个二维数组来模拟一个黑白棋盘,将黑白棋子置于方格之中,棋盘中每个位置都放入黑棋或白棋,分别对应数组每个元素取值只能为 1100 (黑棋为 11 , 白棋为 00),现在需要找一个正方形边界,其每条边上的棋子都是黑棋(对应数组中元素的值为 11 )的,且该正方形面积最大。

输入描述

输入第一行为棋盘的行数(二维数组的行数)

输入第二行为棋盘的列数(二维数组的列数)

紧接着为模拟棋盘的二维数组 arrarr

1<arr.length2001 < arr.length \le 200

1<arr[0].length2001 < arr[0].length \le 200

输出描述

返回满足条件的面积最大正方形边界信息。返回信息[r,c,wr,c,w],其中 rr , cc 分别代表方阵右下角的行号和列号,ww 代表正方形的宽度。如果存在多个满足条件的正方形,则返回 rr 最小的,若 rr 相同,返回 cc 最小的正方形。

样例1

输入

4
5
1 0 0 0 1
1 1 1 1 1
1 0 1 1 0
1 1 1 1 1

输出

[3,2,3]

说明:满足条件且面积最大的正方形边界,其右下角的顶点为 [3,2],即行号为 33 ,列好为 22 ,其宽度为 33 ,因此返回信息为 [3,2,33,2,3]。

样例2

输入

3
3
1 0 0
0 1 0
0 0 1

输出

[0,0,1]

**说明:**满足条件且面积最大的正方形边界有三个。即为 [0,0,10,0,1]、[1,1,11,1,1]、[2,2,12,2,1],根据要求,如果满足条件有多个,则返回 rr 最小,即为[0,0,10,0,1]