【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 思路 & 代碼
- 無注釋二刷
題目描述
- 難點在于 O(n)
思路 & 代碼
- 理解題意,分析出 O(n) 復(fù)雜度應(yīng)該是要用到之前的值來得到當(dāng)前值——動態(tài)規(guī)劃
- 核心結(jié)論:奇數(shù)比前一個數(shù)多一個1,偶數(shù)和偶數(shù)除二后的數(shù)的1數(shù)量一樣
- 邊界 & 狀態(tài)轉(zhuǎn)移方程 & 最優(yōu)子結(jié)構(gòu) 見代碼注釋
- 時間復(fù)雜度 O(n)
無注釋二刷
- 當(dāng)然,之前的位運(yùn)算寫法確實更有逼格啦。。
總結(jié)
以上是生活随笔為你收集整理的【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode笔记】剑指 Offer
- 下一篇: python类属性和实例属性_Pytho