123th LeetCode Weekly Contest Broken Calculator

Posted 樱花落舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了123th LeetCode Weekly Contest Broken Calculator相关的知识,希望对你有一定的参考价值。

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. 1 <= X <= 10^9
  2. 1 <= Y <= 10^9

CF原题,我们反过来看,Y是偶数就/2,奇数就加1,到了比X小就再加

class Solution {
public:
    int brokenCalc(int X, int Y) {
        int cnt=0;
        if(X>=Y){
            return X-Y;
        }
        while(X!=Y){
            if(Y<X)Y++;
            else if(Y%2){
                Y++;
            }else{
                Y/=2;
            }
            //cout<<Y<<endl;
            cnt++;
        }
        return cnt;
    }
};

 

以上是关于123th LeetCode Weekly Contest Broken Calculator的主要内容,如果未能解决你的问题,请参考以下文章

118th LeetCode Weekly Contest Pancake Sorting

113th LeetCode Weekly Contest Flip Equivalent Binary Trees

108th LeetCode Weekly Contest Minimum Falling Path Sum

113th LeetCode Weekly Contest Reveal Cards In Increasing Order

116th LeetCode Weekly Contest Maximum Width Ramp

113th LeetCode Weekly Contest Largest Time for Given Digits