ビット数1

1.需要

  • 関数を記述します。入力は符号なし整数(バイナリ文字列の形式)であり、桁が「1」であるバイナリ式の桁数を返します。

例1:

入力:00000000000000000000000000001011
出力:3
説明:入力バイナリー文字列00000000000000000000000000001011では、合計3ビットが「1」です。

2ビット演算

2.1思考分析

  1. この質問のアイデアは、2進数逆にすることですhttps//blog.csdn.net/Sruggle/article/details/113888614アイデアのリンク、つまり、1の発生数を低いものから高い;

2.2コードの実装

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int res = 0;
        for(int i = 0; i < 32; i++) {
            if((n & 1) == 1) {
                res++;
            }
            n = n >> 1;
        }
        return res;
    }
}

2.3複雑さの分析

  • 時間計算量はO(1)です。
  • スペースの複雑さはO(1)です。

おすすめ

転載: blog.csdn.net/Sruggle/article/details/113891400