Question

Formatted question description: https://leetcode.ca/all/231.html

 231	Power of Two

 Given an integer, write a function to determine if it is a power of two.

 Example 1:

 Input: 1
 Output: true
 Explanation: 2^0 = 1

 Example 2:

 Input: 16
 Output: true
 Explanation: 2^4 = 16

 Example 3:

 Input: 218
 Output: false

Algorithm

Observe the characteristics of the binary notation of the power of 2:

1   2   4       8       16   ....

1   10  100     1000    10000 ...

The power of 2 has only one 1, and the rest is 0s, so our problem-solving idea is to determine whether the lowest bit is 1 each time, then shift to the right, and finally count the number of 1s to determine whether it is Power of 2

Code

Java

public class Power_of_Two {


    class Solution {
        public boolean isPowerOfTwo(int n) {
            int cnt = 0;
            while (n > 0) {
                cnt += (n & 1);
                n >>= 1;
            }
            return cnt == 1;

        }
    }
}

All Problems

All Solutions