leetcode 中等八 338.比特位计数

比特位计数:

动态规划:

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;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36688622/article/details/90759294