Python程式:查詢達到目標所需的操作次數
假設我們有兩個值`start`和`end`,我們必須找到使用以下操作將`start`轉換為`end`所需的最小運算元:
減1
乘以2
因此,如果輸入類似於`start = 2, end = 7`,則輸出將為3,因為我們可以將2乘以得到4,然後乘以2得到8,然後減去1得到7。
為了解決這個問題,我們將遵循以下步驟:
ans := 0
無限迴圈執行以下操作:
如果 end <= start,則
返回 ans + start - end
否則,如果 end 為奇數,則
end := end + 1, ans := ans + 1
否則,
end := end / 2 的商
ans := ans + 1
讓我們看看下面的實現以更好地理解:
示例
class Solution: def solve(self, start, end): ans = 0 while True: if end <= start: return ans + start - end elif end % 2: end += 1 ans += 1 else: end //= 2 ans += 1 ob1 = Solution() start = 2 end = 7 print(ob1.solve(start, end))
輸入
2, 7
輸出
3
廣告