991. Broken Calculator

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

内容简介: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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

精通Git(第2版)

精通Git(第2版)

Scott Chacon、Ben Straub / 门佳、刘梓懿 / 人民邮电出版社 / 2017-9 / 89.00元

Git 仅用了几年时间就一跃成为了几乎一统商业及开源领域的版本控制系统。本书全面介绍Git 进行版本管理的基础和进阶知识。全书共10 章,内容由浅入深,展现了普通程序员和项目经理如何有效利用Git提高工作效率,掌握分支概念,灵活地将Git 用于服务器和分布式工作流,如何将开发项目迁移到Git,以及如何高效利用GitHub。一起来看看 《精通Git(第2版)》 这本书的介绍吧!

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

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

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

正则表达式在线测试