3212力扣:统计X和Y频数相等的子矩阵数量

cpp 复制代码
class Solution {
public:
    int numberOfSubmatrices(vector<vector<char>>& grid) {
        int n=grid.size();
        int m=grid[0].size();
        vector<vector<int>> prex(n+1,vector<int>(m+1,0));
        vector<vector<int>> prey(n+1,vector<int>(m+1,0));
        for(int i=1;i<n+1;i++){
            for(int j=1;j<m+1;j++){
                if(grid[i-1][j-1]=='X'){
                    prex[i][j]=prex[i-1][j]+prex[i][j-1]-prex[i-1][j-1]+1;}
                else{
                    prex[i][j]=prex[i-1][j]+prex[i][j-1]-prex[i-1][j-1]+0;
                }
                if(grid[i-1][j-1]=='Y'){
                    prey[i][j]=prey[i-1][j]+prey[i][j-1]-prey[i-1][j-1]+1;
                }else{
                    prey[i][j]=prey[i-1][j]+prey[i][j-1]-prey[i-1][j-1]+0;
                }
            }
        }
        int res=0;
        for(int i=1;i<n+1;i++){
            for(int j=1;j<m+1;j++){
                int countx=prex[i][j]-prex[0][j]-prex[i][0]+prex[0][0];
                int county=prey[i][j]-prey[0][j]-prey[i][0]+prey[0][0];
                if(countx==county && countx>0){res++;}
            }
        }
        return res;
    }
};

二维前缀和 前缀和数组定义时扩宽一层

相关推荐
代码游侠13 分钟前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
2301_7634724623 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
abluckyboy1 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
园小异1 小时前
2026年技术面试完全指南:从算法到系统设计的实战突破
算法·面试·职场和发展
m0_706653231 小时前
分布式系统安全通信
开发语言·c++·算法
天天爱吃肉82182 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车
alphaTao2 小时前
LeetCode 每日一题 2026/2/2-2026/2/8
算法·leetcode
甄心爱学习2 小时前
【leetcode】判断平衡二叉树
python·算法·leetcode
颜酱3 小时前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
不知名XL3 小时前
day50 单调栈
数据结构·算法·leetcode