力扣每日一题 ---- 2906. 构造乘积矩阵

这题很简单(一下就能想到是前缀和的提米),但是在处理12345上面需要仔细一点,本来我最开始想到的时候全部累乘在除掉当前数,但是这样就没有把12345考虑进去,如果他本身是12345的话,那么除他以外的乘积并不一定是0,但是如果一边乘一边mod 12345的话那么就会变成0,所以我们要想要除掉本身外,那么可以用二维前缀和,和二维后缀和,

除了他本身的一维前缀和 * 二维后缀和 = 答案 (就是跟一维前缀和和后缀和一样)

cpp 复制代码
class Solution {
public:
    vector<vector<int>> constructProductMatrix(vector<vector<int>>& grid) 
    {
       //二维前缀和
       
       int n = grid.size();
       int m = grid[0].size();
       vector<vector<int>> s(n + 10,vector<int>(m + 10,0));
       vector<vector<int>> c(n + 10,vector<int>(m + 10,0));
       vector<vector<int>> ans(n,vector<int>(m,0));
       //后缀乘积
       long long cc = 1;//初始化要变成1,如果是0的话就不对了
       for(int i = n - 1;i >= 0;i--)
          for(int j = m - 1;j >= 0;j--)
          {
              c[i][j] = cc;
              cc = (long long)(cc * grid[i][j]) % 12345;
          }


       long long ss = 1;
       for(int i = 0;i < n;i++)
         for(int j = 0;j < m;j++)
         {
            s[i][j] = ss;
            ans[i][j] = (long long)(s[i][j] * c[i][j]) % 12345;
            ss = (long long)(ss * grid[i][j]) % 12345;
         }

         return ans;
    }
};
相关推荐
CoovallyAIHub几秒前
实时视觉AI智能体框架来了!Vision Agents 狂揽7K Star,延迟低至30ms,YOLO+Gemini实时联动!
算法·架构·github
CoovallyAIHub24 分钟前
开源:YOLO最强对手?D-FINE目标检测与实例分割框架深度解析
人工智能·算法·github
CoovallyAIHub44 分钟前
OpenClaw:从“19万星标”到“行业封杀”,这只“赛博龙虾”究竟触动了谁的神经?
算法·架构·github
刀法如飞1 小时前
程序员必须知道的核心算法思想
算法·编程开发·算法思想
徐小夕2 小时前
pxcharts Ultra V2.3更新:多维表一键导出 PDF,渲染兼容性拉满!
vue.js·算法·github
CoovallyAIHub3 小时前
OpenClaw一脚踩碎传统CV?机器终于不再只是看世界
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
仅凭单目相机实现3D锥桶定位?UNet-RKNet破解自动驾驶锥桶检测难题
深度学习·算法·计算机视觉
zone77393 小时前
002:RAG 入门-LangChain 读取文本
后端·算法·面试
得物技术4 小时前
得物社区搜推公式融合调参框架-加乘树3.0实战
算法
会员源码网1 天前
使用`mysql_*`废弃函数(PHP7+完全移除,导致代码无法运行)
后端·算法