This website contains ALL LeetCode **Premium** problems for
**FREE!!**.

All leaked interview problems are collected from Internet.

All leaked interview problems are collected from Internet.

Given a positive integer *n* and you can do operations as follow:

- If
*n*is even, replace*n*with

.*n*/2 - If
*n*is odd, you can replace*n*with either

or*n*+ 1

.*n*- 1

What is the minimum number of replacements needed for *n* to become 1?

**Example 1:**

Input:8Output:3Explanation:8 -> 4 -> 2 -> 1

**Example 2:**

Input:7Output:4Explanation:7 -> 8 -> 4 -> 2 -> 1 or 7 -> 6 -> 3 -> 2 -> 1

b''