[LeetCode] 0338. ビットを数える

ビットを数える

Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク

簡単

 


整数を与える n、 戻る 配列 答え 長さの n+1 それぞれについて  (0 <= i <= n)答え[i] です の数 1さんの のバイナリ表現では .

例 1:

入力: n=2
出力: [0,1,1]
説明:
0 --> 0 1 --> 1 2 --> 10

例 2:

入力: n=5
出力: [0,1,1,2,1,2]
説明:
0 --> 0 1 --> 1 2 --> 10 3 --> 11 4 --> 100 5 --> 101

制約:

  • 0 <= n <= 10 5

フォローアップ:

  • ランタイムを使用したソリューションを思いつくのは非常に簡単です。 O(n log n)線形時間でできるでしょうか? の上) おそらくシングルパスで?
  • 組み込み関数を使用せずにそれを行うことはできますか(つまり、 __builtin_popcount C++ で)?

パイソン

				
					import List クラスの入力から 解決策: def countBits(self, n: int) -> List[int]: result = [] for i in range(n+1): result.append(str(bin(i)).split ("0b")[1].count('1')) 結果を返す print(Solution().countBits(5))
				
			
ja日本語