当前位置: 首页 > news >正文

Leetcode 2906. Construct Product Matrix

  • Leetcode 2906. Construct Product Matrix
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2906. Construct Product Matrix

1. 解题思路

这道题其实算是一道数论题。

本来其实python的pow内置函数已经帮我们基本处理了所有的问题了,但是这里稍微做了一点复杂化操作,给出的模是12345,这是一个合数,而不是一个质数,因此并不总能保证对于任意一个数 x x x,存在另一个数 y y y使得 x y ≡ 1 ( m o d 12345 ) xy \equiv 1 (mod \ 12345) xy1(mod 12345),但是,我们只需要将 12345 12345 12345质因数分解为 12345 = 3 × 5 × 823 12345=3\times 5 \times 823 12345=3×5×823,那么,我们只需要对这三个因子进行单独考察即可。

2. 代码实现

给出python代码实现如下:

class Solution:def constructProductMatrix(self, grid: List[List[int]]) -> List[List[int]]:MOD = 12345# 12345 = 3*5*823n, m = len(grid), len(grid[0])prod, cnt = 1, defaultdict(int)for i in range(n):for j in range(m):val = grid[i][j]while val % 3 == 0:cnt[3] += 1val = val // 3while val % 5 == 0:cnt[5] += 1val = val // 5while val % 823 == 0:cnt[823] += 1val = val // 823prod = prod * val % MODdef fn(i, j):val = grid[i][j]cnt3 = cnt[3]while val % 3 == 0:cnt3 -= 1val = val // 3cnt5 = cnt[5]while val % 5 == 0:cnt5 -= 1val = val // 5cnt823 = cnt[823]while val % 823 == 0:cnt823 -= 1val = val // 823return (prod * pow(val, -1, MOD) * pow(3, cnt3, MOD) * pow(5, cnt5, MOD) * pow(823, cnt823, MOD)) % MODreturn [[fn(i, j) for j in range(m)] for i in range(n)]

提交代码评测得到:耗时2361ms,占用内存50.4MB。

http://www.lryc.cn/news/194737.html

相关文章:

  • 【Leetcode Sheet】Weekly Practice 11
  • 本地PHP搭建简单Imagewheel私人云图床,在外远程访问
  • Python图像处理进阶:Pillow库的中级应用
  • 多线程怎么共用一个事务
  • scrollIntoView使用与属性详解
  • 【LeetCode热题100】--169.多数元素
  • LeetCode 面试题 10.01. 合并排序的数组
  • 揭秘OLED透明拼接屏的参数规格:分辨率、亮度与透明度全解析
  • 竞赛选题 深度学习YOLOv5车辆颜色识别检测 - python opencv
  • linux U盘无法使用,提示“Partition table entries are not in disk order“
  • HDLbits: Fsm ps2
  • 【设计模式】八、桥接模式
  • 从零开始的stable diffusion
  • 【Qt之QString】数值与进制字符串间的转换详解
  • Pytest单元测试框架 —— Pytest+Allure+Jenkins的应用
  • 科普向丨语音芯片烧录工艺的要求
  • : 依赖: qtbase5-dev (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 或
  • Unity中Camera类实现坐标系转换的示例
  • vue-按键修饰符
  • [初始java]——java为什么这么火,java如何实现跨平台、什么是JDK/JRE/JVM
  • R语言手动绘制NHANSE数据基线表并聊聊NHANSE数据制作亚组交互效应表的问题(P for interaction)
  • C++引用(起别名)
  • Ubuntu:VS Code IDE安装ESP-IDF【保姆级】(草稿)
  • 子序列(All in All, UVa 10340)rust解法
  • AI时代,当项目经理遇到ChatGPT,插上腾飞的翅膀!
  • Springboot项目中加载Groovy脚本并调用其内部方代码实现
  • 为什么要做数据可视化
  • 0基础学习VR全景平台篇 第108篇:全景图细节处理(下,航拍)
  • linux查看文件内容命令more/less/cat/head/tail/grep
  • VBA窗体跟随活动单元格【简易版】