LeetCode 840 矩陣中的幻方(C )

2021-09-23 01:47:14 字數 1276 閱讀 4194

3 x 3 的幻方是乙個填充有從 1 到 9的不同數字的 3 x 3 矩陣,其中每行,每列以及兩條對角線上的各數之和都相等。

給定乙個由整數組成的grid,其中有多少個 3 × 3 的 「幻方」 子矩陣?(每個子矩陣都是連續的)。

示例:

輸入:[[4,3,8,4],

[9,5,1,9],

[2,7,6,2]]輸出:1解釋:下面的子矩陣是乙個 3 x 3 的幻方:

438951

276而這乙個不是:

384519

762總的來說,在本示例所給定的矩陣中只有乙個 3 x 3 的幻方子矩陣。

1 <= grid.length <= 10

1 <= grid[0].length <= 10

0 <= grid[i][j] <= 15

c++

class solution 

vec[grid[i+r][j+c]]=1;}}

if(vec.size()!=9)

if(grid[i+1][j+1]!=5)

int tmp=grid[i][j]+grid[i][j+1]+grid[i][j+2];

if(tmp==grid[i][j]+grid[i+1][j]+grid[i+2][j] && tmp==grid[i][j+1]+grid[i+1][j+1]+grid[i+2][j+1]

&& tmp==grid[i][j+2]+grid[i+1][j+2]+grid[i+2][j+2] && tmp==grid[i+1][j]+grid[i+1][j+1]+grid[i+1][j+2]

&& tmp==grid[i+2][j]+grid[i+2][j+1]+grid[i+2][j+2] && tmp==grid[i][j]+grid[i+1][j+1]+grid[i+2][j+2]

&& tmp==grid[i][j+2]+grid[i+1][j+1]+grid[i+2][j])

else

}int nummagicsquaresinside(vector>& grid)

int res=0;

for(int i=0;i}}}

return res;

}};

leetcode 840 矩陣中的幻方

3 x 3 的幻方是乙個填充有從 1 到 9 的不同數字的 3 x 3 矩陣,其中每行,每列以及兩條對角線上的各數之和都相等。給定乙個由整數組成的 grid,其中有多少個 3 3 的 幻方 子矩陣?每個子矩陣都是連續的 示例 輸入 4,3,8,4 9,5,1,9 2,7,6,2 輸出 1 解釋 下面...

leetcode 840 優勢洗牌

思路 很簡單,田忌賽馬。強對強,弱對弱,如果發現你的強打不過對方的強,就用最弱的對對方的強 程式實現問題 1 為了分出強弱,肯定要sort 排序一下,sort c.rbegin c.rend 降序 sort c.begin c.end 公升序 2 排序後索引都變了,怎麼儲存索引,定義 vector ...

840 矩陣中的幻方

3 x 3 的幻方是乙個填充有從 1 到 9的不同數字的 3 x 3 矩陣,其中每行,每列以及兩條對角線上的各數之和都相等。給定乙個由整數組成的grid,其中有多少個 3 3 的 幻方 子矩陣?每個子矩陣都是連續的 示例 輸入 4,3,8,4 9,5,1,9 2,7,6,2 輸出 1解釋 下面的子矩...