840. 矩阵中的幻方

840. 矩阵中的幻方


题目链接:840. 矩阵中的幻方

代码如下:

cpp 复制代码
class Solution {
public:
	int numMagicSquaresInside(vector<vector<int>>& grid) {
		int m = grid.size(),n = grid[0].size();
		int res = 0;

		for (int i = 0;i < m - 2;i++) {
			for (int j = 0;j < n-2;j++) {
				 if (grid[i + 1][j + 1] != 5) {
                    continue;
                }

				int mask = 0;
				int r_sum[3]{};
				int c_sum[3]{};
				for (int r = 0;r < 3;r++) {
					for (int c = 0;c < 3;c++) {
						int x = grid[i + r][j + c];
						mask |= 1 << x;
						r_sum[r] += x;
						c_sum[c] += x;
					}
				}

				if (mask == (1 << 10) - 2 &&
					r_sum[0] == 15 && r_sum[1] == 15 &&
					c_sum[0] == 15 && c_sum[1] == 15) {
					res++;
				}
			}
		}

		return res;
	}
};
相关推荐
c++之路20 分钟前
C++23概述
java·c++·c++23
学涯乐码堂主2 小时前
有趣的“打擂台算法”
c++·算法·青少年编程·gesp
云栖梦泽3 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
Gary Studio3 小时前
安卓HAL C++基础-智能指针
开发语言·c++
还是阿落呀3 小时前
基本控制结构2
c++
多思考少编码3 小时前
PAT甲级真题1001 - 1005题详细题解(C++)(个人题解)
c++·python·最短路·pat·算法竞赛
极客智造5 小时前
C++ 标准 IO 流全详解:cin /cout/get /getline 原理、用法、区别与避坑
c++·io
charlie1145141915 小时前
嵌入式C++工程实践第20篇:GPIO 输入模式内部电路 —— 芯片是如何“听“到外部信号的
开发语言·c++·stm32·单片机
样例过了就是过了7 小时前
LeetCode热题100 分割等和子集
数据结构·c++·算法·leetcode·动态规划
麦兜和小可的舅舅7 小时前
ClickHouse 列管理机制解析:从 COW、IColumn 到 CRTP
c++·clickhouse