338. 比特位计数
给你一个整数 n
,对于 0 <= i <= n
中的每个 i
,计算其二进制表示中 1
的个数 ,返回一个长度为 n + 1
的数组 ans
作为答案。
今天看一下这道简单题,主要考查位运算,代码如下
class Solution {public int[] countBits(int n) {int[] bits = new int[n + 1];int heightBit = 0;for (int i = 1; i <= n; i++) {if ((i & (i - 1)) == 0) {heightBit = i;}bits[i] = bits[i - heightBit] + 1;}return bits;}
}
题目链接:题单 - 力扣(LeetCode)全球极客挚爱的技术成长平台