【leetcode】【Medium】【338. Counting Bits】【规律】

来源:互联网 发布:程序员培训学校 编辑:程序博客网 时间:2024/05/29 12:07

注意边界及特殊情况


problem link:https://leetcode.com/problems/counting-bits/


code1(java 3ms):

public class Solution {    public int[] countBits(int num) {        if(num==0){            return new int[1];        }                int[] res = new int[num + 1];res[1] = 1;int pow = 2;for (int i = 2; i <= num;) {for (int j = 0; j < pow && i <= num; j++) {res[i] = 1 + res[i - pow];i++;}pow*=2;}return res;    }}

discuss solution(java 2ms):

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;}


0 0