思路其实挺简单的:
当数为偶数时,
dp[i] = dp[i / 2],当为奇数时,dp[i] = dp[i - 1] + 1class Solution {public int[] countBits(int n) {// dp[i] 表示n所对应的1的数量int[] dp = new int[n + 1];for (int i = 1; i <= n; i++) {if ((i & 1) == 0) {// odddp[i] = dp[i / 2];} else {dp[i] = dp[i - 1] + 1;}}// printArr(dp);return dp;}private void printArr(int[] arr) {for (int i : arr) {System.out.print(i + " ");}}}
