题目
给定一个N×N的矩阵matrix,在这个矩阵中,只有0和1两种值,返回边框全是1的最大正方形的边长长度、
例如
0 1 1 1 1
0 1 0 0 1
0 1 0 0 1
0 1 1 1 1
0 1 0 1 1
其中,边框全是1的最大正方形的大小为4 \times 44×4,所以返回4
[要求]
时间复杂度为O(n^3)O(n
3
),空间复杂度为O(n^2)O(n
2
)
实现
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] m = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
m[i][j] = in.nextInt();
}
}
int res = f(m, n);
System.out.println(res);
}
//枚举每一个点,然后判断这个点能否构成正方形
public static int f(int[