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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章