Java解决比特位计数
01 题目
-
给定一个非负整数
n
,请计算0
到n
之间的每个数字的二进制表示中 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
02 知识点
- 动态规划
- 二进制函数
03 我的题解思路
public class countBits {public static void main(String[] args) {
// 测试数据int[] rs=countBits(5);for (int i = 0; i < rs.length; i++) {System.out.print(rs[i]+" ");}}public static int[] countBits(int n) {//计算从0到n,所以数组大小要加一int[] rs=new int[n+1];for (int i = 0; i < n+1; i++) {
// integer有内置的函数计算二进制rs[i]=Integer.bitCount(i);}return rs;}
}