zoukankan      html  css  js  c++  java
  • LeetCode 338. Counting Bits

    https://leetcode.com/problems/counting-bits/

    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.
    • vector - C++ Reference
      •   http://www.cplusplus.com/reference/vector/vector/?kw=vector
    • 二分分治。捡起vector用法。。。
     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 
     5 class Solution {
     6 public:
     7     vector<int> countBits(int num) 
     8     {
     9                 vector<int> res(num + 1, 0);
    10                 
    11                 for (int i = 0; i < res.size(); i ++)
    12                 {
    13                     res[i] = res[i / 2] + i % 2;                    
    14                 }        
    15                 
    16                 return res;
    17     }
    18 };
    19 
    20 int main ()
    21 {
    22     Solution testSolution;
    23     vector<int> result(5, 0);
    24     
    25     result = testSolution.countBits(5);    
    26 
    27     for (int i = 0; i < result.size(); i ++)
    28         cout << result[i] << endl;
    29 
    30     char ch;
    31     cin >> ch;
    32     
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    成功后的迷失
    让主参与的人生
    生命的见证
    谁偷走了我的安全感
    简单理解分页原理
    WebApp开发入门
    程序员必需知道的搜索引擎的搜索技巧
    提高网页打开速度技巧
    十分钟了解HTTP协议
    简单实现页面临摹设计图功能
  • 原文地址:https://www.cnblogs.com/pegasus923/p/5499737.html
Copyright © 2011-2022 走看看