原题链接:https://leetcode-cn.com/problems/counting-bits/

最容易想到的方法,时间复杂度为O(n*k),k为数字的位数

代码:

vector<int> countBits(int num) {vector<int> vec;for(int i=0;i<=num;i++){vec.push_back(count_bits(i));}return vec;
}int count_bits(int num){int count=0;while(num){if(num&0x1)count++;num>>=1;}return count;
}

采用动态规划来做

左边10进制,右边2进制
0=0
1=1
2=10
3=11
4=100
可以看出, 2 和 3 的二进制形式可以通过给 1 的二进制形式左移并加上0或1来得到。4可以通过2左移加0得到。

所以

dp[i] i为数,dp[i]表示其中1的个数

转移方程

 dp[i] = dp[i>>2] + (i & 0x1)

这种方法叫最低有效位

代码:

 vector<int> countBits(int num) {vector<int> dp(num+1,0);for (int i = 0; i <= num; i++){dp[i] = dp[i>>1] + (i & 0x1);}return dp;}

leetcode算法题--比特位计数相关推荐

  1. 《LeetCode力扣练习》第338题 比特位计数 Java

    <LeetCode力扣练习>第338题 比特位计数 Java 一.资源 题目: 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ...

  2. LeetCode每日一题:比特位计数(No.338)

    题目:比特位计数 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 复制代码 示例: 输入: 2 输出: [0,1, ...

  3. (LeetCode C++)比特位计数

    给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案. 示例 1: 输入:n = 2 输 ...

  4. LeetCode算法题

    算法题 1.剑指offer 68题:https://www.nowcoder.com/discuss/198840source_id=profile_create_nctrack&channe ...

  5. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  6. LeetCode算法题-Reverse Linked List(Java实现)

    这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...

  7. LeetCode算法题-Convert a Number to Hexadecimal(Java实现)

    这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...

  8. LeetCode算法题-Minimum Depth of Binary Tree(Java实现)

    这是悦乐书的第168次更新,第170篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第27题(顺位题号是111).给定二叉树,找到它的最小深度.最小深度是沿从根节点到最近的 ...

  9. LeetCode算法题-Valid Palindrome II(Java实现)

    这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...

最新文章

  1. 【 Vivado 】UCF到XDC之间的转换
  2. ubuntu mysql vi_Ubuntu16 下安装 mysql
  3. Ubuntu中的默认shell
  4. Node.js 极简入门Helloworld版服务器例子
  5. 数据库原理 简单基础入门
  6. 实时获取滚动条的高度_适用于星上快速处理的雷达高度计有效波高反演技术
  7. 低版本Eclipse如何快速设置黑色主题
  8. bootstrap下载地址
  9. [Leetcode] Populating next right pointer in each node ii 填充每个节点的右指针
  10. [渝粤教育] 广东-国家-开放大学 21秋期末考试大数据营销10138k2
  11. asp.net整体运行机制详解
  12. IOS 手写控件 简单播放器 AVFoundation音乐播放
  13. Eclipse启动提示“subversive connector discovery”
  14. python自动抠图软件_比PS还好用!Python 20行代码批量抠图
  15. 这45个场景,正在被区块链抽筋扒皮…
  16. python日常应用——pdf拆分和合并 python PyPDF2
  17. 发现fir.im的bug,可以获取fir.im用户的任何软件id和用户token。
  18. 晶圆检测显微镜是做什么研究才用到的?
  19. Java 快乐练习口算
  20. Oracle时间以半小时为单位取整

热门文章

  1. 零基础python从入门到精通 pdf-跟老齐学Python:从入门到精通PDF电子版
  2. python语言自学-python自学难吗
  3. python基础教程 下载-Python基础教程第3版中国PDF电子书免费下载
  4. python装饰器原理-Python 装饰器工作原理解析
  5. python教程是用什么博客写的-Python 有哪些好的学习资料或者博客?
  6. python培训班价格-上海Python培训学费价格是多少
  7. python里面temp是啥-Python模块学习:tempfile 临时文件(夹)操作
  8. Jetson Nano and VIM3硬件参数对比及目标检测性能对比
  9. 图片的裁剪、旋转、平移、模糊
  10. 题目1254:N皇后问题(DFS)