文章目录
LeetCode?启动!!!
今天是智力题,或者说,脑筋急转弯,但也可以用暴力
题目:水壶问题
题目链接:365. 水壶问题
题目描述
代码与解题思路
func canMeasureWater(x int, y int, z int) bool {
if x + y < z {
return false
}
return z % gcd(x, y) == 0
}
func gcd(a, b int) int {
for b != 0 {
a, b = b, a%b
}
return a
}
我不会做,然后就去搜了一下这道题的数学做法,说人话就是:用 target 升水模上两个水壶求的 gcd(最大公约数,或者说欧几里得算法) 等于 0,就证明可以倒出 target 升的水
(PS:最近刚积累了 go 的 gcd 怎么写,直接用上了,开心)
这次做过,下次大概就有点印象了
当然,也可以暴力搜索所有的情况,不过我就懒得整了