LeetCode 991. Broken Calculator
考点 | 难度 |
---|---|
Greedy | Easy |
题目
There is a broken calculator that has the integer startValue on its display initially. In one operation, you can:
multiply the number on display by 2, or
subtract 1 from the number on display.
Given two integers startValue and target, return the minimum number of operations needed to display target on the calculator.
思路
如果start比target大,只能用-1,如果start小,先用*2到比target大再用-1
答案
class Solution(object):
def brokenCalc(self, X, Y):
if X > Y: return X - Y
if X == Y: return 0
if Y % 2 == 0:
return self.brokenCalc(X, Y//2) + 1
else:
return self.brokenCalc(X, Y + 1) + 1