Given an integer, write a function to determine if it is a power of two.
解法1:
经典的算法,如果是pot,那么只有最高位为1,如果将此数减1之后再和原来的数取AND,结果一定为0.
要注意的是要规避:1. 负数 2. 0
这两种情况都不是power of two
C++123456789class Solution {public: bool isPowerOfTwo(int n) { if (n <= 0) return false; return (n & ( n - 1)) == 0; }};
Java1