365. Water and Jug Problem
2016-07-25 10:02
501 查看
365. Water and Jug Problem
You are given two jugs with capacities x and y litres. There is an infinite amount of water supply available. You need to determine whether it is possible to measure exactly z litres using these two jugs.If z liters of water is measurable, you must have z liters of water contained within one or both buckets by the end.
Operations allowed:
Fill any of the jugs completely with water.
Empty any of the jugs.
Pour water from one jug into another till the other jug is completely full or the first jug itself is empty.
Example 1: (From the famous "Die Hard" example)
Input: x = 3, y = 5, z = 4 Output: True
Example 2:
Input: x = 2, y = 6, z = 5 Output: False
Hide Tags
Math
public class Solution { public boolean canMeasureWater(int x, int y, int z) { //limit brought by the statement that water is finallly in one or both buckets if(x + y < z) return false; //case x or y is zero if( x == z || y == z || x + y == z ) return true; //get GCD, then we can use the property of Bézout's identity return z%GCD(x, y) == 0; } public int GCD(int a, int b){ while(b != 0 ){ int temp = b; b = a%b; a = temp; } return a; } }
相关文章推荐
- osgi之Eventadmin通信
- 性能优化
- 【HDU5732 2016 Multi-University Training Contest 1J】【树哈希模板 无根树的同构】Subway 对应两棵树的匹配关系
- 嵌入式linux 项目开发(一)——HTML编程
- 一个在UTF32、UTF-16、UTF-8中相互转换的C++程序
- 为什么Entity Framework不能进行跨数据库查询
- 注解
- Eclipse集成Tomcat:6个常见的”how to”问题
- C# 中distinct的使用
- nefu 117素数个数的位数(位数问题)
- vlan入门知识
- Java8里请不要再使用循环语句
- db2修改列类型
- JAVA设计模式之门面模式(外观模式)
- 优化Java堆大小的5个技巧
- Android获取摄像头支持的分辨率
- 【HDU5731 2016 Multi-University Training Contest 1I】【轮廓线DP+容斥】Solid Dominoes Tilings nm棋盘1x2多边形填充稳定方案
- 微信公众平台在验证接口配置信息时无法通过
- 2016微软探星夏令营在线技术笔试题解(2)
- 本鲨的公众号,日后大部分技术文章将发表在微信手机端上