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))