力扣365-水壶问题

水壶问题

题目链接

解题思路

  1. 假设两个水壶分别为A,B,容量为a,b;想要凑出C升的水
  2. 将A,B两壶看作一个整体
  3. 那么,这个整体只存在四种操作+a,-a,+b,-b;
  4. +a:就是将A壶装满
  5. -a:就是将A壶清空
  6. +b:就是将B壶装满
  7. -b:就是将B壶清空
  8. 想要凑出C升的水壶,需要满足xa+yb=c
  9. 即我们需要对A壶进行x次操作,对B壶进行y次操作,使得可以凑出C升的水
  10. 要想使得xa+yb=c成立,由裴蜀定理知道,要使的a和b的最大公约数可以整除c
c++ 复制代码
class Solution {
public:

    int gcd(int a,int b){
        return b ? gcd(b,a % b) : a;
    }
    bool canMeasureWater(int a, int b, int c) {
        if(c > a + b) return false;
        return !c || c % gcd(a,b) == 0;
    }
};
相关推荐
WBluuue10 分钟前
数据结构与算法:树上倍增与LCA
数据结构·c++·算法
bruk_spp27 分钟前
牛客网华为在线编程题
算法
黑屋里的马2 小时前
java的设计模式之桥接模式(Bridge)
java·算法·桥接模式
sin_hielo2 小时前
leetcode 1611
算法·leetcode
李小白杂货铺3 小时前
识别和破除信息茧房
算法·信息茧房·识别信息茧房·破除信息茧房·算法推荐型茧房·观点过滤型茧房·茧房
来荔枝一大筐3 小时前
C++ LeetCode 力扣刷题 541. 反转字符串 II
c++·算法·leetcode
暴风鱼划水4 小时前
算法题(Python)数组篇 | 6.区间和
python·算法·数组·区间和
zl_vslam4 小时前
SLAM中的非线性优-3D图优化之轴角在Opencv-PNP中的应用(一)
前端·人工智能·算法·计算机视觉·slam se2 非线性优化
是苏浙4 小时前
零基础入门C语言之C语言实现数据结构之顺序表应用
c语言·数据结构·算法