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
  • 相关阅读:
    11.网络请求
    关于 Android 开发中的 127.0.0.1 Connection refused ...
    Android的Handler总结(转)
    httpruner3 运行
    allure安装使用
    初来乍到
    修改 SQL SERVER EXPRESS 登录模式
    关于防止用户表单多次提交方案的思考
    C语言static
    Linux ar 命令的使用说明
  • 原文地址:https://www.cnblogs.com/pegasus923/p/5499737.html
Copyright © 2011-2022 走看看