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;
    }
};

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

相关推荐
尹蓝锐10 分钟前
C语言-用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n个整数在主函数中输入,最后在主函数中输出。
c语言·开发语言·算法
Yanni--18 分钟前
【数据结构】快速排序
数据结构·算法·排序算法
爱是小小的癌1 小时前
C语言刷题日记(附详解)(2)
c语言·开发语言·经验分享·算法
重生之我是数学王子1 小时前
Leetcode 876.141.142.143 环形链表 C++实现
c++·算法·leetcode·链表
shinelord明1 小时前
【算法】粒子群优化
人工智能·算法·机器学习
m0_743849651 小时前
LeetCode33
开发语言·python·算法·leetcode
山脚ice3 小时前
【Hot100】LeetCode—226. 翻转二叉树
算法·leetcode
还有糕手3 小时前
算法【单调栈】
算法
终末圆4 小时前
背包问题【算法 07】
数据结构·c++·算法·动态规划·代理模式·c·背包问题
sz66cm4 小时前
图像处理 -- ISP 之 tone mapping功能的实现原理
图像处理·算法