Leetcode 2998. Minimum Number of Operations to Make X and Y Equal

1. 解题思路

这一题就是一个比较简单的动态规划的题目了。

显然,如果x小于y,那么要使之变成y,就只能通过不断加一的方式获得,我们可以直接给出答案。

而如果x大于y,那么,要使之变成y,我们就需要在以下5种情况当中选择最小值:

  1. 直接通过减一变成y
  2. 先将其减为第一个能被5整除的数,然后整除5之后进行迭代;
  3. 先将其加到第一个能被5整除的数,然后整除5之后进行迭代;
  4. 先将其减为第一个能被11整除的数,然后整除11之后进行迭代;
  5. 先将其加到第一个能被11整除的数,然后整除11之后进行迭代;

此时,我们通过一个动态规划的算法就能快速实现了。

2. 代码实现

给出python代码实现如下:

class Solution:
    def minimumOperationsToMakeEqual(self, x: int, y: int) -> int:
        
        @lru_cache(None)
        def dp(x):
            if x <= y:
                return y-x

            r5, r11 = x % 5, x % 11
            ans = min(
                1 + r5 + dp((x-r5) // 5), 
                1 + 5-r5 + dp((x+5-r5) // 5), 
                1 + r11 + dp((x-r11) // 11), 
                1 + 11-r11 + dp((x+11-r11) // 11), 
                x-y
            )
            return ans

        ans = dp(x)
        return ans

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

相关推荐

  1. LeetCode--2298. 周末任务计数

    2024-01-08 15:54:04       49 阅读
  2. leetcode299--猜数字游戏

    2024-01-08 15:54:04       41 阅读
  3. leetcode 2938.区分白球与黑球

    2024-01-08 15:54:04       29 阅读
  4. LeetCode-day04-2938. 区分黑球与白球

    2024-01-08 15:54:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 15:54:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 15:54:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 15:54:04       82 阅读
  4. Python语言-面向对象

    2024-01-08 15:54:04       91 阅读

热门阅读

  1. 尝试中-分3个独立开发周期

    2024-01-08 15:54:04       68 阅读
  2. axios 后端不配和添加api

    2024-01-08 15:54:04       64 阅读
  3. Intertek绿叶标志——产品碳足迹

    2024-01-08 15:54:04       69 阅读
  4. 「HDLBits题解」Vector2

    2024-01-08 15:54:04       65 阅读
  5. 学习记录————

    2024-01-08 15:54:04       66 阅读
  6. SpringCloud入门

    2024-01-08 15:54:04       59 阅读
  7. C++ 获取每一行的数据 FetchRow() 用vector()实现

    2024-01-08 15:54:04       54 阅读
  8. uni-app页面数据传参方式

    2024-01-08 15:54:04       66 阅读
  9. 服务器常见问题和RAID

    2024-01-08 15:54:04       52 阅读
  10. python&Pandas五:数据分析与统计

    2024-01-08 15:54:04       57 阅读
  11. 力扣labuladong——一刷day87

    2024-01-08 15:54:04       58 阅读
  12. 2024.1.7力扣每日一题——赎金信

    2024-01-08 15:54:04       65 阅读
  13. 【Leetcode】707. 设计链表

    2024-01-08 15:54:04       68 阅读