338. Counting Bits
来源:互联网 发布:上海房价数据库 编辑:程序博客网 时间:2024/05/29 02:47
338. Counting Bits
计算零到一个数之间所有数的二进制中1的个数。
class Solution {public:vector<int> countBits(int num) {vector<int> ans;ans.clear();for (int i = 0; i <= num; i++){int now = i;int flag = 0;while (now){if (now % 2) flag++;now = now >> 1;}ans.push_back(flag);}return ans;}};很简单的想法,每个数都转为二进制,然后算1个数,很暴力,很慢。
class Solution {public:vector<int> countBits(int num) {vector<int> bits(num + 1, 0);for (int i = 1; i <= num; i++) bits[i] += bits[i & (i - 1)] + 1;return bits;}};很神奇的想法,num数中1的个数从num&(num-1)+1转移过来,节约了很多时间,很棒!
奇数
//10011---------num--------------------3
//10010---------num-1-----------------2
//10010---------num&(num-1)-------2
偶数
//10010--------num--------------------2
//10001--------num--------------------2
//10000--------num--------------------1
阅读全文
0 0
- [leetcode] 338. Counting Bits
- 338. Counting Bits
- leetcode 338. Counting Bits
- LeetCodeOJ:338. Counting Bits
- [LeetCode]338. Counting Bits
- LeetCode#338. Counting Bits
- 338. Counting Bits
- [LeetCode] 338. Counting Bits
- LeetCode 338. Counting Bits
- 338. Counting Bits
- [LeetCode]338. Counting Bits
- LeetCode-338. Counting Bits
- LeetCode *** 338. Counting Bits
- 338. Counting Bits
- (leetcode) 338. Counting Bits
- Swift 338. Counting Bits
- #leetcode#338. Counting Bits
- LeetCode 338. Counting Bits
- 提取网络包中的TS 流,以及查看丢包情况
- IntelliJ IDEA 远程调试Hadoop
- IOS开发 SDWebImage获取网络图片的尺寸
- JSP的基础语法
- 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 338. Counting Bits
- goroutine的使用陷阱
- float和double的长度
- 网络请求状态视图设置
- mac本地命令行工具上传文件到服务器
- linux中history命令显示操作执行的时间配置
- 简单实现iOS通知中心的功能
- Android中的异步
- spring+springmvc实现websoket2