191 Number of 1 bits

Concept: 不斷將n&1,如果結果是1,表示n的LSB是1,就要把答案加1。直到n為0表示所有是1的bit都已經被找過了。

Note: 要注意的是,這題需要考慮int可能是unsigned,所以要用>>>來shift bit,而且不能把while的條件設成n>0。

Java程式碼如下:

public static int hammingWeight(int n) {
    int ones = 0;
        while(n!=0) {
            ones = ones + (n & 1);
            n = n>>>1;
        }
        return ones;
}

results matching ""

    No results matching ""