欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode 365. 水壶问题

程序员文章站 2024-03-15 08:34:47
...

365. 水壶问题

题目链接-365. 水壶问题
LeetCode 365. 水壶问题
解题思路
裴蜀定理

  • 裴蜀等式:若a,ba,b是整数,且gcd(a,b)=dgcd(a,b)=d,那么对于任意的整数x,yx,y,ax+byax+by都一定是dd的倍数,特别地,一定存在整数x,yx,y,使ax+by=dax+by=d成立
  • 显然,判断zz是否是xx,yy最大公因数的倍数即可
  • 注意zz小于00zz大于x+yx+y的情况
  • 具体操作见代码

附上代码
核心算法

class Solution {
public:
    bool canMeasureWater(int x, int y, int z) {
        if(z<0||z>x+y)
            return 0;
        if(x==0||y==0)
            return z==(x+y)||z==0;
        return z%__gcd(x,y)==0;
    }
};
相关标签: 数论 LeetCode