LeetCode 338. Counting Bits
考点 | 难度 |
---|---|
Dynamic Programming | Easy |
题目
Given an integer columnNumber
, return its corresponding column title as it appears in an Excel sheet.
思路
对于一个数,如果是偶数,它的二进制最后一位是0,f[i >> 1]
(二进制整体向右移动一位)对1的个数没有影响。如果是奇数,移动后1的个数需要加一。i&1
可以判断是否二进制的最后一位是1。
答案
public int[] countBits(int num) {
int[] f = new int[num + 1];
for (int i=1; i<=num; i++) f[i] = f[i >> 1] + (i & 1);
return f;
}