338.php版 动态规划。
递推公式,自己找个例子[0,1,1,2,1,2,2,3, 1,2, 2, 3, 2, 3, 3, 4],然后找找规律
function countBits($num) {
// 使用动态规划
$dp[0] = 0;
if(empty($num)) {
return $dp;
}
$dp[1] = 1;
for($i = 2; $i <= $num; $i++) {
// $a = $a / 2 + $a % 2;
$dp[$i] = $dp[$i / 2] + $dp[$i % 2];
}
return $dp;
}
展开