231. Power of Two

Link

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

Example 1:

Input: 1
Output: true 
Explanation: 20 = 1

Example 2:

Input: 16
Output: true
Explanation: 24 = 16

Example 3:

Input: 218
Output: false

Solution

第一次就寫對了,應該沒必要檢討。透過bit operation的方式去看是否是2的n次方

 public boolean isPowerOfTwo(int n) {
        while(n != 0){
            if(n == 1) return true;
            int i = n >> 1;
            if( (i<<1) != n){ 
                break;
            }
            n = n >> 1;
        }
        return false;
    }

Last updated

Was this helpful?