[leetcode-338]Counting Bits(java)
来源:互联网 发布:java decompiler 中文 编辑:程序博客网 时间:2024/06/02 06:29
原文地址:https://leetcode.com/problems/counting-bits/
分析:这道题要求给定N,然后计算从0到N之间所有的数的bit为1的数,并要求时间复杂度为O(N),因此对于每个数,然后求它的bit数的方法是不可取的。
所幸,当我们把数从0到N写出来时很容易发现规律,即对于2^N的数,末尾N-1位的重复规律,正好等于前N-1个数的重复规律,而这时只需要加1即可。
public class Solution { public int[] countBits(int num) { int[] res = new int[num + 1]; res[0] = 0; int base = 1;//末尾为1的情况 while(base <= num){ int next = base * 2;//下一个末尾全为0的值 for(int i = base;i<next && i<=num;i++){ res[i] = res[i-base]+1; } base = next; } return res; }}
1 0
- [leetcode-338]Counting Bits(java)
- LeetCode 338 -Counting Bits ( JAVA )
- 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
- 巴萨教父克鲁伊夫去世&西班牙黄金一代谢幕的一点感想
- 树
- Stanford机器学习---第九讲. 聚类
- jquery
- An asset is marked with HideFlags.DontSave but is included in the build:
- [leetcode-338]Counting Bits(java)
- 通过ArcGISforAndroid在手机地图上动态绘制椭圆
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ..
- python图片处理Image和skimage的不同
- 室内定位技术将会怎样颠覆传统商业运营?
- 【机房重构】如何将Excel表格导出到WPS
- iOS动态更新方式选择
- runLoop
- Stanford机器学习---第十讲. 数据降维