338. Counting Bits
June 24, 2025
04:32 AM
No headings found
Loading content...
No headings found
Problem
Bài toán yêu cầu: Với một số nguyên không âm n , hãy trả về một mảng ans có độ dài n + 1, trong đó ans[i] là số lượng bit 1 trong biểu diễn nhị phân của i (với 0 ≤ i ≤ n)
Phân tích và ý tưởng
Có nhiều cách giải tối ưu nhất là sử dụng DP kết hợp với thao tác bit:

Solution
1function countBits(n: number): number[] {
2 const ans: number[] = Array(n + 1).fill(0);
3 for (let i = 1; i <= n; i++) {
4 ans[i] = ans[i >> 1] + (i & 1);
5 }
6 return ans;
7};