剑指offer-二进制中1的个数
Description:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
Notes:
时间限制:1秒空间限制:32768K
解题思路:遇到二进制的问题,可以考虑位操作;这里我们需要判断二进制表示中有多少个1,我们可以对这个数进行移位操作,每次判断最低位是否位1即可;
Javapublic class Solution {
public int NumberOf1(int n) {
int cnt = 0;
for (int i = 0; i <= 31; i++) {
if (((n >> i) & 0x1) == 1) cnt++;
}
return cnt;
}
}
运行结果:
运行时间:14ms
占用内存:9240k
版权声明
本文仅代表作者观点,不代表博信信息网立场。