当前位置: 首页 > 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。

相关文章:

  • 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的响应式原理
  • 线程与进程
  • 西藏做网站找谁/网页制作的软件
  • 深圳市住建局网站官网/2023新闻摘抄十条
  • 晟阳建设官方网站/企业员工培训总结
  • 青岛公司做网站/太原seo优化
  • wordpress 扩展数据库/惠州seo计费
  • 北京一个公司做网站认证/环球资源外贸平台免费