LeetCode-in-Java

2571. Minimum Operations to Reduce an Integer to 0

Medium

You are given a positive integer n, you can do the following operation any number of times:

Return the minimum number of operations to make n equal to 0.

A number x is power of 2 if x == 2i where i >= 0.

Example 1:

Input: n = 39

Output: 3

Explanation: We can do the following operations:

Example 2:

Input: n = 54

Output: 3

Explanation: We can do the following operations:

Constraints:

Solution

public class Solution {
    public int minOperations(int n) {
        int cnt = 1;
        while (n != 0) {
            int num = 1;
            while (num <= n) {
                if (num == n) {
                    return cnt;
                }
                num *= 2;
            }
            n = Math.min(num - n, n - num / 2);
            cnt++;
        }
        return cnt;
    }
}