↓ 跳过正文
  1. 科学/
  2. 计算机/
  3. 算法/
  4. Leetcode/
  5. 0300-0399/

0397 整数替换

Solution

class Solution:
    def integerReplacement(self, n: int) -> int:
        ans = 0
        while n != 1:
            if (n & 1) == 0:
                n >>= 1
            elif n != 3 and (n & 3) == 3:
                n += 1
            else:
                n -= 1
            ans += 1
        return ans

# 本地测试
if __name__ == "__main__":
    sol = Solution()
    print(sol.integerReplacement(8))  # 3
    print(sol.integerReplacement(7))  # 4
    print(sol.integerReplacement(3))  # 2