题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
第一种解法:利用java的Integer吧整数转换为字符数组,遍历数组查找
第二种解法: 整数和自身减1相与,会把该数最高位为1的数变为0,计算1的个数就可以了
public class Solution {
public int NumberOf1(int n) {
int ans = 0;
while(n != 0){
ans++;
n = n & (n-1);
}
return ans;
}
}
本文介绍了一种高效算法,用于计算给定整数在其二进制表示中1的个数。通过使用位操作技巧,避免了传统方法的效率瓶颈,实现了快速准确的计算。

被折叠的 条评论
为什么被折叠?



