Bootstrap

汉明距离(Hamming Distance)

LeetCode 191 Number of 1 Bits

计算一个数字的比特位包含1的个数

思路1:将其转换成二进制,计算其中1的个数(见下面代码注释部分),时间复杂度:O(n),n为二进制长度。
思路2:有个小技巧:value &= value - 1这个运算的结果就是把value最后一个1去掉,循环进行运算直到value等于0(所有的1都被去掉)就可以知道vaule拥有多少个1了,时间复杂度:O(m),m为1的个数。

public class LeetCode191 {
   
     public int hammingWeight(int n) {
         int len = 0;
         /*
            String bin = Integer.toBinaryString(n);
            for (int i = 0; i < bin.length(); i++) {
                if(bin.charAt(i) == '1')
                    len++;
            }
            */
        //在Java中࿰
;