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.mzph.cn/news/108780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Node.js+Express+MongoDB+Vue.js全栈开发实战》简介

今天介绍的这本书是《Node.jsExpressMongoDBVue.js全栈开发实战》。该书由清华大学出版社于2023年1月出版 外观 从书名故名思议,就是基于Node.jsExpressMongoDBVue.js来实现企业级应用全栈开发。 封面风格比较简约,插图是一张类似于罗马时代战车形象&…

Leetcode刷题详解——找到字符串中所有字母异位词

1. 题目链接:438. 找到字符串中所有字母异位词 2. 题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括…

C语言---预处理详解

1.预定义符号 在C语言中有一些内置的预定义符号 __FILE__ __LINE__ __DATE__ __TIME__ __STDC__//进行编译的源文件 //文件当前的行号 //文件被编译的日期 //文件被编译的时间 //如果编译器遵循ANSI C,其值为1,否则未定义 编译器在__STDC__报错,说明,v…

CF837G Functions On The Segments

CF837G Functions On The Segments Functions On The Segments - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 文章目录 CF837G Functions On The Segments题目大意思路code 题目大意 你有 n n n 个函数,第 i i i 个函数 f i f_i fi​ 为: f i ( x…

【TES720D】青翼科技基于复旦微的FMQL20S400全国产化ARM核心模块

板卡概述 TES720D是一款基于上海复旦微电子FMQL20S400的全国产化核心模块。该核心模块将复旦微的FMQL20S400(兼容FMQL10S400)的最小系统集成在了一个50*70mm的核心板上,可以作为一个核心模块,进行功能性扩展,特别是用…

【数组的使用】

文章目录 前言数组的格式有两种数组是引用数据类型遍历数组获取数组的长度:数组名.length数组之间的引用数组中的null关于引用的注意事项总结 前言 数组的格式有两种 int[] array{1,2,3,4};int[] array2new int[10];//默认将数组进行初始化,里面的值都为…

问:TCP/IP协议栈在内核态的好还是用户态的好

“TCP/IP协议栈到底是内核态的好还是用户态的好?” 问题的根源在于,干嘛非要这么刻意地去区分什么内核态和用户态。 引子 为了不让本文成为干巴巴的说教,在文章开头,我以一个实例分析开始。 最近一段时间,我几乎每…

WPF Datagrid Header数据绑定,表头复选框实现全选、全否、部分选中,根据条目动态变化

制作一个根表头为CheckBox可全选、全不选的列表,且可根据条目自动调整CheckBox的状态(选中、不选、部分选中)。 本来是想用DataGrid做一个CheckBox的列用于勾选其中的某些行,当时做出来之后想着添加一个全选、全否的功能。做两个…

pytorch里常用操作(持续更新)

对不起我脑子不太记事儿每次变换都得想想想所以干脆汇总一下算了,当然也有一些不是torch包里面的但是没有关系hhh 官方文档里有一堆不太常用的,这里整理的都是自己比较常用的 张量操作 torch.tensor:从Python列表或NumPy数组创建张量 torc…

idea使用debug无法启动,使用run可以启动

1、将调试断点清除 使用快捷键ctrl shift F8,将勾选的选项去除即可 2、Error running SampleApplication: Command line is too long. Shorten command line for SampleApplication or also for Spring Boot default configuration,报这种错误&#x…

vr火灾逃生安全科普软件开展消防突击教育安全有效

VR火灾逃生自救虚拟体验是一种利用虚拟现实技术来模拟火灾逃生自救场景的教育工具。以下是这个体验的几个优点:VR消防安全体验馆的出现,为城市的安全教育开辟了新的途径。这种创新的体验方式,能够让市民在模拟的火灾场景中学习并掌握消防安全…

前端面试基础面试题——10

1. 说说你对 promise 的了解 2.解构赋值及其原理 3.箭头函数需要注意的地方 4.箭头函数和普通函数有什么区别 5.ES6 都有什么 Iterator 遍历器 6.jQuery 一个对象可以同时绑定多个事件,这是如何实现的? 7.jQuery 库中的 $() 是什么? 8…

tcp/ip协议2实现的插图,数据结构2 (9 - 章)

(20) 20 九章1 IP选项处理 ip_dooptions (21) 21 九章2 IP选项处理 ip_rtaddr,save_rte,ip_srcroute与结构体 (22)九章3 IP选项处理 ip_pcbopts, ip_insertoptions , iptime 与结构 (23&#xf…

安装 mysql

gpt: 要在 Debian 11 上安装 MySQL 数据库服务器,您可以使用以下步骤: 1. **更新软件包列表**:在安装任何软件之前,始终建议首先更新软件包列表,以确保获取最新的软件包信息。在终端中运行以下命令: bash…

课时4作业1

Description 输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值; 例如 12321是对称数,输出yes&#xf…

过滤器(Filter)和拦截器(Interceptor)有什么不同?

过滤器(Filter)和拦截器(Interceptor)是用于处理请求和响应的中间件组件,但它们在实现方式和应用场景上有一些不同。 实现方式: 过滤器是Servlet规范中定义的一种组件,通常以Java类的形式实现。过滤器通过在…

编译添加了ALPHA开发板的NXP官方uboot

一. 简介 之前文章学习了 如何在NXP(恩智浦)官方 uboot 中添加正点原子的 ALPHA 开发板。 如何在NXP(恩智浦)官方 uboot 中添加正点原子的 ALPHA 开发板,文章如下: 向NXP官方uboot添加Nand版开发板-CSDN博…

【webrtc 】FEC 1: 音频RED rfc2198及视频ULPFEC的RED封装

1 参考和引用 M79 代码。 ULPFEC报文构建流程 与大神的分析: WebRTC-FEC协议总结 一致 CrystalShaw 大神的文章 ULPFEC在WebRTC中的实现 WebRTC研究:FEC之RED封装 本文是大神们文章和代码的学习笔记。red封包(rfc2189)1.1 RED(Redundant Coding) 封装 Ulpfec 非均等保护前向纠…

HarmonyOS云开发基础认证---练习题二

【判断题】 2/2 Serverless是云计算下一代的默认计算范式。 正确(True) 【判断题】 2/2 接入认证服务后,用户每次收到验证码短信都需要开发者买单。 错误(False) 【判断题】 2/2 认证服务手机号码登录需要填写国家码。 正确(True) 【判断题】 2/2 在Cloud Functi…

大数据Flink(九十八):SQL函数的归类和引用方式

文章目录 SQL函数的归类和引用方式 一、SQL 函数的归类