Skip to content

Latest commit

 

History

History
26 lines (22 loc) · 567 Bytes

0338. 比特位计数.java.md

File metadata and controls

26 lines (22 loc) · 567 Bytes

338. 比特位计数

给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。

https://leetcode-cn.com/problems/counting-bits/


class Solution {
  public int[] countBits(int n) {
    int[] bits = new int[n + 1];
    bits[0] = 0;
    for (int i = 1; i <= n; i++) {
      if ((i & 1) == 0) {
        // 偶数
        bits[i] = bits[i >> 1];
      } else {
        // 奇数
        bits[i] = bits[i - 1] + 1;
      }
    }
    return bits;
  }
}