LeetCode[338] Counting Bits
来源:互联网 发布:阿里面试题 java p7 编辑:程序博客网 时间:2024/05/21 20: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.
每遇到2的次方数就是把从vec[0]开始每个元素+1
class Solution {public: vector<int> countBits(int num) { vector<int> vec; vec.push_back(0); int k = 1; for (int i = 1; i <= num; i++) { if (i == k) k*= 2; vec.push_back(vec[i - k/2] + 1); } return vec; }};
一开始用的 pow(2,k),但那样用时太长
0 0
- leetcode:bits:Counting Bits(338)
- 【LeetCode-338】Counting Bits
- leetcode-338-Counting Bits
- Leetcode 338 Counting Bits
- LeetCode 338 :Counting Bits
- [leetcode-338]Counting Bits
- 【LeetCode-338】 Counting Bits
- LeetCode 338 Counting Bits
- Counting Bits leetcode 338
- [LeetCode 338] Counting Bits
- LeetCode-338:Counting Bits
- LeetCode-338:Counting Bits
- LeetCode[338] Counting Bits
- LeetCode#338 Counting Bits
- LeetCode 338 Counting Bits
- LeetCode 338 Counting Bits
- Leetcode #338 Counting Bits
- Leetcode 338 Counting Bits
- Bat命令学习
- 【Android】多线程
- SpringMvc 整合json
- 基于 TCP 的通讯接口(TCP Utils)
- muduo : Condition
- LeetCode[338] Counting Bits
- 【图论】匈牙利算法模板
- spring 一些注解
- 微信分享透明背景图片背景变黑
- Tomcat多域名配置
- 为什么groupbykey是宽依赖
- 关于响应式编程
- 动画切换数字,字符view
- 想成为嵌入式程序员应知道的0x10个基本问题