给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。
示例 1:
输入: 2
输出: [0,1,1]
示例 2:
输入: 5
输出: [0,1,1,2,1,2]
进阶:
https://blog.csdn.net/chenkaibsw/article/details/78989459
package dp;
import java.util.Arrays;
import java.util.Scanner;
public class 比特位计数 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] dp=new int[n+1];
dp[0]=0;
for(int i=1;i<=n;i++){
if((i&1)==1){//如果是奇数
dp[i]=dp[i-1]+1;
}else{
dp[i]=dp[i/2];
}
}
for(int ans:dp){
System.out.print(ans+" ");
}
System.out.println();
System.out.println(Arrays.toString(dp));
}
}

365

被折叠的 条评论
为什么被折叠?



