Dynamic Programing -- Leetcode problem 338. Counting Bits
来源:互联网 发布:爱伦坡 乌鸦 知乎 编辑:程序博客网 时间:2024/06/10 11:00
- 描述: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].
- 分析:这道题从pass起来非常容易,但是关键在与如何设计出是件复杂度为O(n)的算法。
- 思路一:直接使用循环暴力求解。O(n*sizeof(integer))
class Solution {public: vector<int> countBits(int num) { vector<int> my_vec; for (int i = 0; i <= num; i++) { my_vec.push_back(count_num(i)); } return my_vec; } int count_num(int num) { int count = 0; int find_num = 0; while (num != 0) { find_num = num % 2; if (find_num == 1) { count++; } num = num / 2; } return count; }};
- 思路二:使用动态规划的思想求解。(O(n))
对于这些二进制的值,先出现的二进制会在后出现的二进制中被利用,因此我们在计算中只需要将利用前面统计出来的结果加上最低位的1就可以完成。
class Solution {public: vector<int> countBits(int num) { vector<int> my_vec(num + 1, 0); for (int i = 1; i <= num; i++) { my_vec[i] = my_vec[i >> 1] + i % 2; } return my_vec; }};
阅读全文
0 0
- Dynamic Programing -- Leetcode problem 338. Counting Bits
- Leetcode Algorithm Problem #338. Counting Bits
- Dynamic Programing -- Leetcode problem 647. Palindromic Substrings
- Dynamic Programing -- Leetcode problem 62. Unique Paths
- Dynamic Programing -- Leetcode problem 343. Integer Break
- [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
- (leetcode) 338. Counting Bits
- #leetcode#338. Counting Bits
- LeetCode 338. Counting Bits
- leetcode 338. Counting Bits
- spring+hibernate+shiro+Ehcache 项目分享
- 类和对象1-this指针
- 上传预览图片
- C语言实验——一元二次方程Ⅰ
- VerticalTabLayout的使用
- Dynamic Programing -- Leetcode problem 338. Counting Bits
- 算法(十)贪心算法
- 生成随机数
- 剑指offer 42 和为S的连续正整数序列
- 02-面向对象(多态-概述)1 02-面向对象(多态-概述)2 03-面向对象(多态-好处)1 03-面向对象(多态-好处)2 03-面向对象(多态-好处)3
- Linux-不同系统之间的数据传输及其文件归档与压缩
- VS路径宏说明
- android 属性动画
- WINHTTP