991. Broken Calculator

栏目: Java · 发布时间: 6年前

内容简介:On a broken calculator that has a number showing on its display, we can perform two operations:Double: Multiply the number on the display by 2, or;Decrement: Subtract 1 from the number on the display.

On a broken calculator that has a number showing on its display, we can perform two operations:

Double: Multiply the number on the display by 2, or;

Decrement: Subtract 1 from the number on the display.

Initially, the calculator is displaying the number X.

Return the minimum number of operations needed to display the number Y.

Example 1:

Input: X = 2, Y = 3
Output: 2
Explanation: Use double operation and then decrement operation {2 -> 4 -> 3}.

Example 2:

Input: X = 5, Y = 8
Output: 2
Explanation: Use decrement and then double {5 -> 4 -> 8}.

Example 3:

Input: X = 3, Y = 10
Output: 3
Explanation:  Use double, decrement and double {3 -> 6 -> 5 -> 10}.

Example 4:

Input: X = 1024, Y = 1
Output: 1023
Explanation: Use decrement operations 1023 times.

Note:

1 <= X <= 10^9
1 <= Y <= 10^9

难度:medium

题目:在一个显示数字的坏计算器上,我们可以执行两个操作:

加倍:将显示的数字乘以2,或;
递减:从显示的数字中减去1。
最初,计算器显示的是数字X。
返回显示数字Y所需的最小操作数。

思路:从Y到X,可执行的操作为自增1和减半。如果为奇数则自增1,如果为偶则减半。如果X大于Y则只能自减。

Runtime: 3 ms, faster than 100.00% of Java online submissions for Broken Calculator.

Memory Usage: 36.6 MB, less than 100.00% of Java online submissions for Broken Calculator.

class Solution {
    public int brokenCalc(int X, int Y) {
        int step = 0;
        while (X != Y) {
            if (Y < X) {
                step += X - Y;
                break;
            }
            
            Y = Y % 2 == 1 ? Y + 1 : Y / 2;
            step++;
        }
        
        return step;
    }
}

以上所述就是小编给大家介绍的《991. Broken Calculator》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

琢石成器

琢石成器

罗云彬 / 电子工业出版社 / 2009-6 / 89.00元

Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以开发出大型的软件,而且是了解操作系统运行细节的最佳方式。 本书从编写应用程序的角度,从“Hello,World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个实例逐步深入Win32汇编语言编程的方方面面。 本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程......一起来看看 《琢石成器》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码