比特位計數:
動態規劃:
PHP,20ms,解題裏面最快的那個就是我哈哈哈哈哈。
狀態轉移方程:
$res[$i] = $res[$i >> 1] + ($i&1);
- 最後一位是1,>>運算符將最後一位的1去掉,加上 $i&1
- 最後一位是0,>>運算符將最後一位的0去掉,加上 $i&1
class Solution {
/**
* @param Integer $num
* @return Integer[]
*/
function countBits($num) {
$res = [];
for($i = 0;$i <= $num;$i++){
$res[$i] = $res[$i >> 1] + ($i&1);
}
return $res;
}
}