leetCode 338
生活随笔
收集整理的這篇文章主要介紹了
leetCode 338
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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.
?
思路:數字總比[數字二進制最高位置0后的數字]的多一個1
?
public static int[] countBits(int num) {int len = num + 1;int[] res = new int[len];res[0] = 0;for (int i = 1; i < len; i++) {res[i] = res[Util.highBit(i)] + 1;}return res;}//將二進制的最高位置0public static int highBit(int x) {return x - (int) Math.pow(2, (int) (Math.log(x) / Math.log(2)));}?
轉載于:https://www.cnblogs.com/zhaihua/p/5551684.html
總結
以上是生活随笔為你收集整理的leetCode 338的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SimulatorXcode模拟器如何使
- 下一篇: 关于Cocos2d-x属性和引用