A 3 x 3 magic square is a 3 x 3 grid filled with distinct numbers from 1 to 9 such that each row, column, and both diagonals all have the same sum.
Given an grid of integers, how many 3 x 3 “magic square” subgrids are there? (Each subgrid is contiguous).
Example 1:
Input:
[[4,3,8,4],
[9,5,1,9],
2,7,6,2]]
Output: 1
Explanation:
The following subgrid is a 3 x 3 magic square:
438
951
276
while this one is not:
384
519
762
In total, there is only one magic square inside the given grid.
Note:
1 <= grid.length <= 10
1 <= grid[0].length <= 10
0 <= grid[i][j] <= 15
分析:
题目定义了一个概念,3x3的矩阵,元素从1到9,横纵对角线之和相等,把这个称为”magic square”,给定一个二维列表,找有多少个magic square,数据长度不超过10 x 10,说明这道题随便写都不会超时
思路:
从1到9取值,那么最中间的数必是5,至于为什么,想不通的我建议你放弃,只要从1,1到n-1,n-1遍历,如果满足值为5就进行判断
1 | def numMagicSquaresInside(grid): |