public class Solution {
public int[] CountBits(int num) {
var ary = new int[num + ]; for (int i = ; i <= num; i++)
{
var count = ;
var cur = i;
do
{
var c = cur % ;
if (c == )
{
count++;
}
cur = cur / ;
} while (cur != ); ary[i] = count;
} return ary;
}
}

https://leetcode.com/problems/counting-bits/#/description

另一个版本,246ms:

public class Solution
{
public int[] CountBits(int num)
{
int[] counts = new int[num + ];
for (int i = ; i <= num; i++)
{
int n = i;
int count = ;
while (n != )
{
if ((n & ) == )
{
count++;
}
n >>= ;
}
counts[i] = count;
}
return counts;
}
}

补充一个使用动态规划思想的代码,使用python实现:

 class Solution:
def countBits(self, num: 'int') -> 'List[int]':
if num==0:
return [0]
elif num==1:
return [0,1]
else:
d = [0] * (num+1)
d[0] = 0
d[1] = 1
for i in range(2,num+1):
if i % 2 ==0:
d[i] = d[i//2]
else:
d[i] = d[i//2] + 1
return d

leetcode338的更多相关文章

  1. [Swift]LeetCode338. 比特位计数 | Counting Bits

    Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...

  2. leetcode338—Counting Bits

    Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...

  3. LeetCode 338

    Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...

  4. LeetCode practice

    子集和问题:给定一组数和一个值,从这组数中选出若干个数使其和为给定的值.这是个NPC问题. 1.https://leetcode.com/problems/counting-bits/#/soluti ...

随机推荐

  1. java 几种对象

     POJO(plain old java object):普通的java对象,有别于特殊的java对象(含继承约束等)和EJB.POJO一般只有一系列的属性和相应的get.set方法.     PO( ...

  2. Fibonacci Heaps

    Mergeable heapsA mergeable heap is any data structure that supports the following five operations,in ...

  3. C语言gcc处理过程

    gcc编译C文件一共四步,预处理(Preprocess),编译(Compilation),汇编(Assembly)和链接(Linking) 1. 预处理(Preprocess) 预处理是预处理中会展开 ...

  4. iOS动画学习

    学习一下动画,感谢以下大神的文章:    UIView:基础动画.关键帧动画.转场动画 Core Animation :基础动画,关键帧动画,动画组,转场动画,逐帧动画 CALayer :CALaye ...

  5. Ubuntu16.04上添加用户以及修改用户所属的组

    我的问题是这样的,我的本地的电脑上有一个用户以及一个用户组,我还想添加其他的用户,并且这个用户属于这个已有的用户组 <鸟哥的linux私房菜>针对的是centos系统,还是有一些不一样 实 ...

  6. Windows下用PIP安装scipy出现no lapack/blas resources found

    Windows下升级了pandas,但是发现scipy包随后引用出错,后来确认需重新安装scipy, 在用PIP安装scipy出现no lapack/blas resources found的错误,具 ...

  7. 绑定属性 - v-bind

    未绑定 <!DOCTYPE html><html><head>    <meta charset="utf-8">    <t ...

  8. bzoj 2460 线性基

    #include<bits/stdc++.h> #define ll long long #define LL long long #define int long long using ...

  9. 使用fpm 方便快速生成postgresql extension分发包

    fpm 是一个不错,而且强大的rpm.deb,系统启动服务工具包,我们可以用来快速的生成专业的软件分发包 演示一个pg 扩展包分发包的生成(rpm 以及deb) 安装fpm sudo gem inst ...

  10. tcpdump抓包常用参数和用法

    tcpdump 与wireshark Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具.但在Linux下很难找到一个好用的图形化抓包工具.还好有Tcpdump.我们 ...