Competitive programming

This Repository contains solutions to Leetcode, Codechef... questions

View on GitHub

Counting Bits

Problem

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 1

Input: 2
Output: [0,1,1]

Example 2

Input: 5
Output: [0,1,1,2,1,2]

Follow up

Optimal Solution

Complexity

public int[] countBits(int num) {
    int[] arr= new int[num + 1]; 
    for(int i = 0; i <= num; i++){
        if(i%2 == 0) arr[i] = arr[i/2];
        else arr[i] = arr[i/2] + 1;
    }
    return arr;
}