学堂 学堂 学堂公众号手机端

剑指offer-二进制中1的个数

lewis 1年前 (2024-03-24) 阅读数 6 #技术


Description:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

Notes:


时间限制:1秒空间限制:32768K

解题思路:遇到二进制的问题,可以考虑位操作;这里我们需要判断二进制表示中有多少个1,我们可以对这个数进行移位操作,每次判断最低位是否位1即可;

Java
public 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


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门