書き込み機能は、入力数のバイナリ表記における桁数を返す符号なし整数である「1」(また、ハミング重みとも呼ばれます)。
実施例1:
入力:00000000000000000000000000001011
出力:3
説明:00000000000000000000000000001011入力バイナリ文字列、「1」には3つの合計。
実施例2:
入力:00000000000000000000000010000000
出力:1
説明:00000000000000000000000010000000入力バイナリ文字列は、 '1'が存在します。
実施例3:
入力:11111111111111111111111111111101
出力:31
説明:11111111111111111111111111111101入力バイナリ文字列、 '1'に31の合計。
注:
(Javaなど)いくつかの言語では、何の符号なし整数型がありませんので、予めご了承ください。整数は、符号付きまたは符号なしの両方ので、この場合には、入力と出力は、符号付き整数型として指定され、実装に影響を与えてはならない、内部のバイナリ表現は同じです。
Javaでは、コンパイラは、符号付き整数を表すために、2の補数表記を使用します。したがって、上記の例3では、入力が符号付き整数を表す-3。
高度:
あなたはこの関数を繰り返し呼び出す場合、あなたはどのようにあなたのアルゴリズムを最適化するのだろうか?
出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/number-of-1-bits
すべてのネットワークからの控除が著作権を保有。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。
パブリック クラスソリューション{ // あなたは符号なしの値としてNを処理するために必要な 公共の int型のハミング重み(int型のn){ int型のカウント= 0 ; 一方、(!N = 0 ){ カウント + = N - 1 。 N = N >>> 1 。 } を返す数えます。 } }