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

Leetcode 3444. Minimum Increments for Target Multiples in an Array

  • Leetcode 3444. Minimum Increments for Target Multiples in an Array
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3444. Minimum Increments for Target Multiples in an Array

1. 解题思路

这一题我的思路上就是一个深度优先遍历,考察target数组当中的每一个元素的全部倍数被出现的情况下,最少需要多少次操作,以及同时能够满足多少剩余的target数组中的数字,然后持续迭代考察,取其中的最小值。

同时,考虑到时间复杂度的因素,我们将结果用一个全局变量存下来,一旦某一步的结果超过了已知可行的最大操作数,就直接退出递归,从而进行剪枝。

2. 代码实现

给出最终的python代码实现如下:

class Solution:
    def minimumIncrements(self, nums: List[int], target: List[int]) -> int:
        nums, target = sorted(nums), sorted(target, reverse=True)
        n, m = len(nums), len(target)
        status = [0 for _ in range(m)]
        ans = math.inf

        def dfs(idx, nums, status):
            nonlocal ans
            if idx >= m:
                return 0
            elif status[idx] == 1:
                return dfs(idx+1, nums, status)
            need = math.inf
            tgt = 0
            while tgt < nums[-1]:
                tgt += target[idx]
                old_status = deepcopy(status)
                for i, x in enumerate(target):
                    if status[i] == 1 or tgt % x == 0:
                        status[i] = 1
                i = bisect.bisect_right(nums, tgt)
                if i > 0:
                    num = nums.pop(i-1)
                    if abs(num-tgt) < ans:
                        need = min(need, abs(num-tgt) + dfs(idx+1, nums, status))
                    nums.insert(i-1, num)
                status = old_status
            if need >= ans:
                return math.inf
            if idx == 0:
                ans = need
            return need
        
        dfs(0, nums, status)
        return ans      

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


http://www.kler.cn/a/531501.html

相关文章:

  • 【线程】基于环形队列的生产者消费者模型
  • S4 HANA明确税金汇差科目(OBYY)
  • 前端力扣刷题 | 6:hot100之 矩阵
  • deep generative model stanford lecture note3 --- latent variable
  • 海思ISP开发说明
  • JAVA安全—反射机制攻击链类对象成员变量方法构造方法
  • OSCP - Proving Grounds - Roquefort
  • 基于物联网技术的实时数据流可视化研究(论文+源码)
  • 高效接口限流:基于自定义注解与RateLimiter的实践
  • 代码随想录day27
  • FunASR的服务启动_3
  • 02.04 数据类型
  • 前端知识速记--CSS篇:display
  • UE5 蓝图学习计划 - Day 12:存储与加载
  • 使用Pytorch训练一个图像分类器
  • 通信易懂唠唠SOME/IP——SOME/IP消息格式
  • 2024-我的学习成长之路
  • DeepSeek:AI领域的创新先锋
  • 使用mybatisPlus插件生成代码步骤及注意事项
  • 飞行汽车中的无刷外转子电机、人形机器人中的无框力矩电机技术解析与应用
  • 《最小阻力之路》关于愿景的理解和思考
  • NoSQL、时序、搜索……Lindorm 如何一站式搞定多模数据?
  • 《DeepSeek R1:7b 写一个python程序调用摄像头获取视频并显示》
  • SpringMVC全局异常处理+拦截器使用+参数校验
  • C语言的物联网
  • 基于SpringBoot的信息技术知识赛系统的设计与实现(源码+SQL脚本+LW+部署讲解等)