zoukankan      html  css  js  c++  java
  • 365. Water and Jug Problem

    莫名奇妙找了个奇怪的规律。

    每次用大的减小的,然后差值和小的再减,减减减减减减到差值=0为止。(较小的数 和 差值 相等为止,这么说更确切)

    然后看能不能整除就行了。

    有些特殊情况。

    看答案是用GCD做的,2行就写出来了,但是不是很理解。

    Ax + By = z,A B为正负 int,就是有接。。神奇。

    放个自己写的垃圾代码。

    public class Solution {
        public boolean canMeasureWater(int x, int y, int z) 
        {
            
            if(z>x+y) return false;
            if(z == 0) return true;
            if(x == y) return (z==x) || (z == 2*x);
            if(x == 0 || y == 0) return (z == x) || (z == y);
            if(z%x == 0 || z % y == 0) return true;
            
            
            int large = Math.max(x,y);
            int small = Math.min(x,y);
            int diff = large - small;
            
            while(diff != small)
            {
                large = Math.max(diff,small);
                small = Math.min(diff,small);
                diff = large - small;
            }
            
            
            return z%diff == 0;
        }
    }
    

    GCD的两行纯复制粘贴,不是很明白:

    public boolean gcd(int a, int b)
        {
            return b == 0? a:gcd(b,a%b);
        }
        public boolean canMeasureWater(int x, int y, int z) 
        {
            return ( x + y > z && z % gcd(x,y) == 0) || x + y == z;
        }
    
  • 相关阅读:
    Linux混杂设备驱动学习
    Linux字符设备驱动解析
    U-BOOT-Linux启动指令bootm分析
    项目-基于视频压缩的实时监控系统--tiny6410
    django分页linaro-django-pagination
    django FileFIeld和ImageField 上传路径改写
    ajaxFileUpload用法
    gzip压缩
    编写EL函数
    struts2上传下载
  • 原文地址:https://www.cnblogs.com/reboot329/p/5874219.html
Copyright © 2011-2022 走看看