題目鏈結題目描述
給定乙個非負整數 num。對於 0 ≤ i ≤ num 範圍中的每個數字 i ,計算其二進位制數中的 1 的數目並將它們作為陣列返回。
示例 1:
輸入: 2
輸出: [0,1,1]
示例 2:
輸入: 5
輸出: [0,1,1,2,1,2]
高階:題目分析
法一:動態規劃:
找規律:奇數二進位制中1的個數比前乙個數(偶數)二進位制中1的個數加1,原因:奇數總是在低位為1;
偶數二進位制中1的個數和偶數/2二進位制中1的個數相同;
設定dp為當前元素二進位制中1的個數;
狀態轉移方程:奇數:dp[i] = dp[i-1] + 1;偶數:dp[i] = dp[i/2]。
/**
* @param num
* @return
*/var
countbits
=function
(num)
else
}return dp;
};
法二:
/**
* @param num
* @return
*/var
countbits
=function
(num)
let sum =
newarray
(str.length)
.fill(0
);for(
let i=
0; i}return sum;
};
LeetCode刷題 動態規劃(三)
最長公共子串行問題,最基本的問題是在兩個字串中找出最長公共字串。方法是使用雙指標 i,j遍歷兩個字串,建立二維 dp 陣列,通過填表獲得結果。1143,最長公共子串行,medium 583,兩個字串的刪除操作,medium 712,兩個字串的最小ascii刪除和,medium 1143,最長公共子串...
刷題 動態規劃
動態規劃法 動態規劃求解問題的四個特徵 求乙個問題的最優解 整體的問題的最優解是依賴於各個子問題的最優解 小問題之間還有相互重疊的更小的子問題 從上往下分析問題,從下往上求解問題 題目 給你一根長度為n繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段的繩子的長度記為k 0 k 1 k ...
動態規劃刷題總結
資料結構與演算法 41 動態規劃理論 最優子結構 無後效性和重複子問題 zj csdn部落格 乙個模型 多階段決策最優解模型,重點在於多階段,每個階段都對應著不同的狀態 三個特徵 最優子結構,無後效性,重複子問題。主要抓住最優子結構這一特徵,理解為後面的階段狀態可以由前面的階段狀態推導而來。狀態定義...