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