力扣每日一题 ---- 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;
    }
};
相关推荐
和裕3 分钟前
蜂窝板 vs 七层瓦楞重型纸箱:大件工业设备运输性能与成本全对比
大数据·运维·网络·人工智能·算法
衡石科技21 分钟前
Data_Agent记忆机制与经验复用衡石分析智能体会话记忆与长期学习技术解析
人工智能·科技·学习·算法·企业级bi
wzdark1 小时前
基于矩阵的动态规划路径问题性能优化4
线性代数·矩阵·动态规划
shirsl2 小时前
算法 Day 2 滑动窗口 + 栈 / 单调栈
开发语言·python·算法
土司大王3 小时前
LeetCode hot100 回溯专题总结:Java 通用模板、决策树模型
java·算法·leetcode·决策树
2601_962218613 小时前
万象生鲜系统订单全生命周期状态同步技术实现业务可视
大数据·数据库·人工智能·python·算法
那年窗外下的雪.3 小时前
AIDC 学习日志|第 22 天|All-Active/Single-Active 故障演练设计
服务器·网络·学习·算法·哈希算法
wzdark4 小时前
基于启发式搜索的最优路径规划算法研究4
算法
l1t4 小时前
用superpi、tinypi、tpi等工具计算圆周率的比较
c语言·算法
a187927218314 小时前
【算法】链表(二):链表上的双指针——变速、异链与定距,和一份路程账本
数据结构·算法·leetcode·链表·go·指针·环形链表