Leetcode338. Counting Bits

原创 2017年01月03日 14:39:30

原题

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array.

Example:
For num = 5 you should return [0,1,1,2,1,2].

Follow up:

It is very easy to come up with a solution with run time O(n*sizeof(integer)). But can you do it in linear time O(n) /possibly in a single pass?
Space complexity should be O(n).
Can you do it like a boss? Do it without using any builtin function like __builtin_popcount in c++ or in any other language.

大意
给出一个整数nums,算出从0到nums中所有数的二进制中1的个数,并且以数组的形式返回。
思路
本来这道题没有思路,看了其他人的解法,才知道有一个数学公式,自己却没有想到,验证了一下,思路确实是正确的。第i位1的个数就是第i/2位+(i%2)的数值。
代码

public class Solution {
    public int[] countBits(int num) {
        int[]f=new int [num+1];
        for(int i=0;i<=num;i++){
            f[i]=f[i/2]+i%2;
        }
       return f; 
    }
}

原题链接

版权声明:本文为博主原创文章,未经博主允许不得转载。

七种bit count快速计算方法比较

转自:http://blog.chinaunix.net/u/13991/showart_115947.html http://idning.iteye.com/blog/732769 代码:htt...
  • brandohero
  • brandohero
  • 2015年01月13日 00:03
  • 1105

数据流基本问题--确定频繁元素(二)lossy counting和sticky sampling

我们之前在数据流基本问题--确定频繁元素(一)中提到了频繁元素的一个计算问题(找出出现次数超过m/k的元素),里面的算法返回的结果里肯定包含出现次数超过m/k的元素,但是也可能包含不超过m/k的元素(...
  • dm_ustc
  • dm_ustc
  • 2015年05月27日 19:56
  • 3654

在caffe 中添加Crowd counting 数据层

#目录 [TOC]一、简介Crowd counting一般以人群图像作为输入,网络回归该图像对应的密度图。以往做法是先在matlab中根据图像的label(人头位置)生成密度图,然后将输入图像及密度...
  • seven_first
  • seven_first
  • 2016年09月20日 18:55
  • 3851

【LeetCode】338. Counting Bits

问题描述问题链接:https://leetcode.com/problems/counting-bits/#/descriptionGiven a non negative integer numbe...
  • mrbcy
  • mrbcy
  • 2017年03月15日 21:27
  • 580

Leetcode: 338.Counting Bits

Leetcode: 338.Counting Bits
  • qq_16318319
  • qq_16318319
  • 2017年03月28日 20:46
  • 105

leetcode(338). Counting Bits

problem Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num c...
  • PKU_Jade
  • PKU_Jade
  • 2017年08月07日 15:47
  • 112

【leetcode】338. Counting Bits

一、题目描述 Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calcu...
  • xiaoquantouer
  • xiaoquantouer
  • 2016年07月19日 20:39
  • 142

【LeetCode-338】Counting Bits(C++)

题目要求:给出一个非负整数num,求出0-num范围内的(num+1)个整数,每个整数的二进制表达中1的位数。Follow Up:时间复杂度为O(n*sizeof(integer))的解法很简单,要求...
  • liujiayu1015
  • liujiayu1015
  • 2016年09月18日 21:09
  • 192

LeetCode中338Counting Bits的题解

题目来源是LeetCode中的338题,题干意思很简单,就是给出一个非零整数,要求计算该整数范围内的每一个数所对应的二进制位中“1”的数量,并将其存储在一个数组中,返回数组。题目在LeetCode中属...
  • codekiller_
  • codekiller_
  • 2017年02月26日 19:40
  • 101

Leetcode 338.Counting Bits

Leetcode 338.Counting Bits第一次写博客各种一脸懵逼(:зゝ∠) 格式比较丑也懒得改了希望最好不要有同学戳进来! 根据老师大人的旨意我等渣渣要带着自己的渣代码出来丢人现眼了...
  • sdcs2016_dyq
  • sdcs2016_dyq
  • 2016年09月03日 22:30
  • 121
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode338. Counting Bits
举报原因:
原因补充:

(最多只允许输入30个字)