Voyz's Studio.

LeetCode算法笔记--2的幂

字数统计: 175阅读时长: 1 min
2020/10/28 Share

LeetCode算法笔记–Day27

231. 2的幂

题目:

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例1:
输入: 1
输出: true

示例2:
16
输出: true

我的解答:

观察2^0、2^1、2^2……2^n,它们的二进制表示为1、10、100、1000、10000……

判断一个数是否是2的n次幂,也就是判断二进制表示中是否只有一位是1且在最前面那位的位置。

例如n=00010000,那n-1=00001111,n&(n-1)==0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* @param {number} n
* @return {boolean}
*/
var isPowerOfTwo = function(n) {

if(n<1){
return false;
}

let m = n & (n-1);
if(m==0){
return true;
}else{
return false;
}

};
CATALOG
  1. 1. LeetCode算法笔记–Day27
  2. 2. 231. 2的幂
    1. 2.0.0.0.1. 题目:
    2. 2.0.0.0.2. 我的解答: