zoukankan      html  css  js  c++  java
  • leetcode-365

     一般思维这个题可能会想到bfs,但是看了题解发现数学法是很不错的选择,这题要是用bfs其实也有点勉强,我目前的理解是算法是解决简化问题的而不是制造问题的,如果可以用很强的数学公式解决也是有限考虑的。

    而贝祖定理告诉我们,ax+by=zax+by=z 有解当且仅当 zz 是 x, yx,y 的最大公约数的倍数。因此我们只需要找到 x, yx,y 的最大公约数并判断 zz 是否是它的倍数即可。

    之前好像有个新闻还报道过这个小女孩。

    牵扯到数学,还是py好用,go直接拉跨。

    class Solution:
        def canMeasureWater(self, x: int, y: int, z: int) -> bool:
            if x + y < z:
                return False
            if x == 0 or y == 0:
                return z == 0 or x + y == z
            return z % math.gcd(x, y) == 0

    end

    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    Docker底层技术了解(3)
    Docker整体结构了解(2)
    Docker简介(1)
    linux常用命令
    python反射
    flask线程隔离技术
    flask核心机制
    并发编程
    socket通信
    网络编程
  • 原文地址:https://www.cnblogs.com/CherryTab/p/12543522.html
Copyright © 2011-2022 走看看