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

Leetcode 3566. Partition Array into Two Equal Product Subsets

  • Leetcode 3566. Partition Array into Two Equal Product Subsets
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3566. Partition Array into Two Equal Product Subsets

1. 解题思路

这一题我的实现还是比较暴力的,首先显而易见的,若要满足题目要求,则给出的数组的所有元素的乘积必然是target的平方,因此,我们可以快速由此判断该数组是否可分。

然后,在满足上述条件的前提下,我们就是要找到若干个元素使之乘积恰好为target,这个的话我们可以通过一个动态规划进行实现。

2. 代码实现

给出python代码实现如下:

class Solution:def checkEqualPartitions(self, nums: List[int], target: int) -> bool:prod = 1for num in nums:prod *= numif prod != target * target:return Falsen = len(nums)@lru_cache(None)def dp(idx, tgt):if tgt == 1:return Trueif idx >= n:return Falseif tgt % nums[idx] == 0:return dp(idx+1, tgt) or dp(idx+1, tgt // nums[idx])else:return dp(idx+1, tgt)return dp(0, target)

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

http://www.dtcms.com/a/225720.html

相关文章:

  • STM32Cubemx-H7-17-麦克纳姆轮驱动
  • 设计模式——命令设计模式(行为型)
  • 数据库管理与高可用-MySQL全量,增量备份与恢复
  • Android Stdio 编译 文件生成,以及Gradle
  • 家政维修平台实战11搭建服务规格
  • 1、树莓派更换软件下载源
  • 设计模式——状态设计模式(行为型)
  • 恶意软件清理工具,让Mac电脑安全更简单
  • SQL注入攻击的方法与预防
  • C++内存学习
  • 【从零开始学习QT】信号和槽
  • 《P3959 [NOIP 2017 提高组] 宝藏》
  • 系统初步设计方案/系统建设方案
  • C++修炼:位图和布隆过滤器
  • 6、在树莓派上安装 NTP(Network Time Protocol )服务的步骤
  • esp-idf ubuntu环境配置
  • 基于谷歌ADK的智能客服系统简介
  • duilib图片属性中corner属性九宫格拉伸说明
  • 深入了解Vue2和Vue3的响应式原理
  • 线程与进程
  • CppCon 2014 学习:C++ in Huge AAA Games
  • 美业+智能体,解锁行业转化新密码(2/6)
  • C语言进阶--程序的编译(预处理动作)+链接
  • Java实现中文姓名转拼音生成用户信息并写入文件
  • Java求职者面试指南:DevOps技术栈深度解析
  • NodeJS全栈开发面试题讲解——P7 DevOps 与部署和跨域等
  • LangChain-结合GLM+SQL+函数调用实现数据库查询(三)
  • 【配置指南】Dify部署超全配置参考手册
  • Python 训练营打卡 Day 32-官方文档的阅读
  • 英语写作中“专注于”focus on、concentrate的用法