LeetCode:991. Broken Calculator

栏目: 编程工具 · 发布时间: 6年前

内容简介:有一台坏掉的计算器,能够显示一个数字,我们可以对这个数字做两个操作:初始时,计算器显示数字

此文为LeetCode 991. Broken Calculator 的题解。

题意

有一台坏掉的计算器,能够显示一个数字,我们可以对这个数字做两个操作:

  • 二: 将显示的数字乘以2, 或者;
  • 减一 : 将显示的数字减1.

初始时,计算器显示数字 X .

返回要得到数字 Y 需要的最小操作次数。

题解

如果X>Y,则只能执行减一操作。否则,如果Y是奇数,则上一步操作一定是X 减一 ;如果Y是偶数,则上一步操作只能是X 乘二

只需要通过上述规则,由Y反推X即可。

代码

/**
 * https://www.robberphex.com/broken-calculator/
 * Runtime: 0 ms, faster than 100.00% of Java online submissions for Broken Calculator.
 * Memory Usage: 33 MB, less than 8.71% of Java online submissions for Broken Calculator.
 */
class Solution {
    public int brokenCalc(int X, int Y) {
        int res = 0;
        // 如果X<Y,则只能-1,故直接走return句
        while (X < Y) {
            if (Y % 2 == 1) {
                Y += 1;
            } else {
                Y /= 2;
            }
            res++;
        }
        return res + X - Y;
    }

    public static void main(String[] args) {
        int res = new Solution().brokenCalc(2, 3);
        System.out.println(res);
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

口碑

口碑

[美] David Meerman Scott / 高游、郭成钢、薛松 / 人民邮电出版社 / 2010-10 / 25.00

Web 2.0时代,怎样让你的产品或创意风靡一时,为百万大众喜闻乐道?本书将为你揭开其中的奥秘。作者将理论创新与实务操作相结合,总结出了利用Web 2.0营销手段制造网络狂欢效应的六条金科玉律,并介绍了一个个生动鲜活的成功范例,如:哈利?波特魔法公园如何策划一场小型活动,达到引爆网络热潮的效果;贝克?霍尔克拉夫特如何通过网络发布音乐作品,从默默无闻成长为全球炙手可热的明星;看似平淡无奇的电子书,如......一起来看看 《口碑》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试