type
status
date
slug
summary
tags
category
icon
password
创建时间
Jan 20, 2025 08:42 AM
给你一个整数
n
,对于 0 <= i <= n
中的每个 i
,计算其二进制表示中 1
的个数 ,返回一个长度为 n + 1
的数组 ans
作为答案。位运算基础
使用内置函数
利用位运算 + 1 的特点
我们发现,当最高位发生变化后,会重走一遍低位的所有流程。
利用从 4(100) 开始
- 4 是 100 + 00:1 + 0 = 1
- 5 是 100 + 01:1 + 1 = 2
- 6 是 100 + 10:1 + 1 = 2
- 7 是 100 + 11:1 + 2 = 3
或者
动态规划——最低有效位
动态规划——最低设置位
使用
i & (i - 1)
得到最低位的 1📎 参考
- 无