初等数论,LeetCode 365. 水壶问题

一、题目

1、题目描述

有两个水壶,容量分别为 jug1Capacity 和 jug2Capacity 升。水的供应是无限的。确定是否有可能使用这两个壶准确得到 targetCapacity 升。

如果可以得到 targetCapacity 升水,最后请用以上水壶中的一或两个来盛放取得的 targetCapacity 升水。

你可以:

  • 装满任意一个水壶
  • 清空任意一个水壶
  • 从一个水壶向另外一个水壶倒水,直到装满或者倒空

2、接口描述

class Solution {
public:
    bool canMeasureWater(int jug1Capacity, int jug2Capacity, int targetCapacity) {

    }
};

3、原题链接

365. 水壶问题 - 力扣(LeetCode)


二、解题报告

1、思路分析

由于每次倒出都是整壶的倒,倒入一定倒满则可以等效为直接倒了一壶
所以最终水量一定为sx+ty
根据初等数论的内容可以知道x,y最大公因数d可以表示为sx+ty=d并且d是能被这样表示的最小正整数,那么sx+ty=z成立当仅当z整除x和y最大公因数

2、复杂度

时间复杂度: O(1) 空间复杂度:O(1)

3、代码详解

class Solution {
public:
    bool canMeasureWater(int x, int y, int z) {
        if (x + y < z) 
            return false;
        
        if (x == 0 || y == 0) 
            return z == 0 || x + y == z;
        
        return z % gcd(x, y) == 0;
    }
};

相关推荐

  1. 初等数论,LeetCode 365. 水壶问题

    2024-01-28 18:54:01       46 阅读
  2. LeetCode解法汇总365. 水壶问题

    2024-01-28 18:54:01       43 阅读
  3. leetcode 365. 水壶问题【裴蜀定理】

    2024-01-28 18:54:01       36 阅读
  4. 力扣365-水壶问题

    2024-01-28 18:54:01       31 阅读
  5. 每日一题 力扣365 水壶问题

    2024-01-28 18:54:01       29 阅读
  6. Leetcode395场周赛 问题和解法

    2024-01-28 18:54:01       14 阅读
  7. 初等数论基础

    2024-01-28 18:54:01       30 阅读
  8. LeetCode 36

    2024-01-28 18:54:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-28 18:54:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-28 18:54:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-28 18:54:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-28 18:54:01       18 阅读

热门阅读

  1. Vue——vue3拖拽库Sortablejs

    2024-01-28 18:54:01       36 阅读
  2. C: AES对称加密算法代码

    2024-01-28 18:54:01       39 阅读
  3. QT笔记 - QToolButton triggered(QAction *)不触发问题

    2024-01-28 18:54:01       33 阅读
  4. 初识C语言

    2024-01-28 18:54:01       41 阅读
  5. go 面试题分享

    2024-01-28 18:54:01       25 阅读
  6. 运维文本三剑客详辨

    2024-01-28 18:54:01       28 阅读
  7. Linux delay相关函数实现

    2024-01-28 18:54:01       25 阅读
  8. 无人机调试开源软件

    2024-01-28 18:54:01       45 阅读