力扣比特位计数 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的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 0338. 比特位计数

LeetCode338. 比特位计数(位运算)

338. 比特位计数

338. 比特位计数

java刷题--338 比特位计数

java刷题--338 比特位计数