338. Counting Bits_比特位计数_简单动态规划
https://leetcode.com/problems/counting-bits/
这是初步了解动态规划后做的第一道题,体验还不错。。。
看完题目要求后,写出前10个数的二进制数,发现了以下规律:
- 2的幂的二进制数中只有一个1
 - 若n不是2的幂,可以拆分为两个数的和(a+b),a为比n小的最接近的2的幂
 
拆分后,res[n] = res[a] + res[b]
class Solution {
public:
    vector<int> countBits(int num) {
        int base = ;
        vector<int> res(num+);
        res[] = ;
        if(num == )
            return res;
        for(int n=; n<=num; n++)
        {
            if(n == base)
            {
                res[n] = ;
                base *= ;
            }
            else
            {
                res[n] = res[base/] + res[n-base/];
            }
        }
        return res;
    }
};

338. Counting Bits_比特位计数_简单动态规划的更多相关文章
- 338 Counting Bits Bit位计数
		
给定一个非负整数 num. 对于范围 0 ≤ i ≤ num 中的每个数字 i ,计算其二进制数中的1的数目并将它们作为数组返回.示例:比如给定 num = 5 ,应该返回 [0,1,1,2,1,2] ...
 - Leetcode之动态规划(DP)专题-338. 比特位计数(Counting Bits)
		
Leetcode之动态规划(DP)专题-338. 比特位计数(Counting Bits) 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数 ...
 - LeetCode 338. 比特位计数
		
338. 比特位计数 题目描述 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 示例 1: 输入: 2 输出 ...
 - Java实现 LeetCode 338 比特位计数
		
338. 比特位计数 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1 ...
 - leetcode TOP100 比特位计数
		
338. 比特位计数 题目描述: `给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: ...
 - 338.比特位计数( Counting Bits)leetcode
		
附上:题目地址:https://leetcode-cn.com/problems/counting-bits/submissions/ 1:题目: 给定一个非负整数 num.对于 0 ≤ i ≤ nu ...
 - [Swift]LeetCode338. 比特位计数 | Counting Bits
		
Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...
 - Leetcode——338. 比特位计数
		
题目描述:题目链接 对于求解一个十进制数转化为二进制时里面1的个数,可以先看一下概况: 十进制数 二进制数 1的个数 1 1 1 2 10 1 3 11 2 4 100 1 5 101 2 ...
 - Leetcode题目338:比特位计数(中等)
		
题目描述: 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 ...
 
随机推荐
- Ubuntu 安装 matplotlib
			
参考: ubuntu16 安装matplotlib Ubuntu 安装 matplotlib sudo apt-get install libpng-dev libfreetype6-dev pkg- ...
 - Codeforces 781D Axel and Marston in Bitland
			
题目链接:http://codeforces.com/contest/781/problem/D ${F[i][j][k][0,1]}$表示是否存在从${i-->j}$的路径走了${2^{k}} ...
 - python 比较两个yaml文件
			
import yaml with open("a.yaml") as f: with open("a.yaml") as k: ): x=f.readline( ...
 - spring controller方法和jstl
			
1复杂类型查询:查询条件已经多于一个实体类中的属性 1)可以创建一个类用于组合查询条件 基础类 public class Items { private Integer id; private Str ...
 - django自定制Admin
			
如果只是在admin中简单的展示及管理模型,那么在admin.py模块中使用admin.site.register将模型注册一下就好了: from django.contrib import admi ...
 - IntelliJ IDEA平台下JNI编程(五)—本地C代码创建Java对象及引用
			
本文学习如何在C代码中创建Java对象和对象数组,前面我们学习了C代码中访问Java对象的属性和方法,其实在创建对象时本质上也就是调用构造函数,因此本文知识学习起来也很轻松.有了前面学习数组创建的方法 ...
 - 关于怎么在CSDN中修改代码行中字体的颜色
			
先吐槽一下自己的心路历程吧,自己现在也是在CSDN中发表了自己好几篇的原创博文,但每一篇博文自己总感觉怪怪的,就是说不出自己哪里有毛病呢,知道今天恍然大悟,原来自己的代码行真心丑的要死,没有呈现出在编 ...
 - HTML如何实现滚动文字
			
HTML如何实现滚动文字 一.总结 一句话总结:marquee标签,也可以用js和css来实现 marquee标签 也可jss和css <marquee><span style=&q ...
 - Enable SMB2 on the Client
			
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation edit DependOnService and add ...
 - MySQL中如何实现select top n ----Limit
			
Mysql中limit的用法详解 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. LIMIT 子句可以被用于强制 S ...