물음표 살인마의 개발블로그

알고리즘 문제/Leetcode

338. Counting Bits

BEstyle 2022. 12. 8. 23:44

Given an integer n, return an array ans of length n + 1 such that for each i (0 <= i <= n), ans[i] is the number of 1's in the binary representation of i.

 

Example 1:

Input: n = 2
Output: [0,1,1]
Explanation:
0 --> 0
1 --> 1
2 --> 10

Example 2:

Input: n = 5
Output: [0,1,1,2,1,2]
Explanation:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101

 

Constraints:

  • 0 <= n <= 105

 

Follow up:

  • It is very easy to come up with a solution with a runtime of O(n log n). Can you do it in linear time O(n) and possibly in a single pass?
  • Can you do it without using any built-in function (i.e., like __builtin_popcount in C++)?

class Solution:
    def countBits(self, n: int) -> List[int]:
        alist=[]
        for i in range(n+1):
            alist.append(bin(i)[2:].count("1"))
        return (alist)

'알고리즘 문제 > Leetcode' 카테고리의 다른 글

746. Min Cost Climbing Stairs  (0) 2022.12.09
392. Is Subsequence  (0) 2022.12.08
121. Best Time to Buy and Sell Stock  (0) 2022.12.08
121. Best Time to Buy and Sell Stock  (0) 2022.12.08
119. Pascal's Triangle II  (0) 2022.12.08