力扣比特位计数 JAVA

Posted 蒙面侠1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣比特位计数 JAVA相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
解法一:
java内置API Integer.bitCount()

class Solution {
    public int[] countBits(int n) {
        int[] a=new int[n+1];
        for(int i=0;i<=n;i++){
            a[i]=Integer.bitCount(i);
        }
        return a;
    }
}

解法二:

找规律:
如果 i 为偶数,那么f(i) = f(i/2)
如果 i 为奇数,那么f(i) = f(i - 1) + 1

class Solution {
    public int[] countBits(int n) {
        int[] a=new int[n+1];
        if(n==0)
            return new int[]{0};
        a[0]=0;
        a[1]=1;
        for(int i=1;i<=n;i++){
            if(i%2==0)
                a[i]=a[i/2];
            else
                a[i]=a[i-1]+1;
        }
        return a;
    }
}

以上是关于力扣比特位计数 JAVA的主要内容,如果未能解决你的问题,请参考以下文章

java刷题--338 比特位计数

java刷题--338 比特位计数

java刷题--338 比特位计数

LeetCode 0338. 比特位计数

比特位计数--C++ bitset 用法

leetcode刷题13.比特位计数——Java版