麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

338. Counting Bits -Medium

2019-11-11 05:06:34
字體:
來源:轉載
供稿:網友

Question

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary rePResentation and return them as an array.

給出一個非負整數num,對[0, num]范圍內的數分別計算它們的二進制數中1的個數,用數組形式返回。

Example

For num = 5 you should return [0,1,1,2,1,2].

Solution

動態規劃解。其實這是道找規律的題目,我們首先列出0-15的數對應的二進制中1的個數

數字 二進制中1的個數 遞推關系式
0 0 dp[0] = 0
1 1 dp[1] = dp[1-1] + 1
2 1 dp[2] = dp[2-2] + 1
3 2 dp[3] = dp[3-2] + 1
4 1 dp[4] = dp[4-4] + 1
5 2 dp[5] = dp[5-4] + 1
6 2 dp[6] = dp[6-4] + 1
7 3 dp[7] = dp[7-4] + 1
8 1 dp[8] = dp[8-8] + 1
9 2 dp[9] = dp[9-8] + 1
10 2 dp[10] = dp[10-8] + 1
11 3 dp[11] = dp[11-8] + 1
12 2 dp[12] = dp[12-8] + 1
13 3 dp[13] = dp[13-8] + 1
14 3 dp[14] = dp[14-8] + 1
15 4 dp[15] = dp[15-8] + 1

綜上,遞推關系式為 dp[n] = dp[n - offset] + 1 (這個規律還真不怎么好找),而offset的更新規律為,每當 offset * 2等于n時,offset就需要更新,即乘以2.

class Solution(object): def countBits(self, num): """ :type num: int :rtype: List[int] """ # 0-num有num + 1個數 dp = [0] * (num + 1) offset = 1 for n in range(1, num + 1): # 根據規律,只要index = 2 * offset,offset需要乘以2 if offset * 2 == n: offset *= 2 # dp[index] = dp[index - offset] + 1 dp[n] = dp[n - offset] + 1 return dp
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊人在线| 92看片淫黄大片欧美看国产片 | 全视频tv | 久久电影一区二区 | 日本在线播放一区二区三区 | 新久草在线视频 | 久久久免费观看完整版 | 午夜在线观看视频网站 | 成人不卡在线观看 | 色七七久久影院 | 性爱视频在线免费 | 国产成人av免费看 | v11av在线播放 | 欧美日韩在线播放一区 | 91精品国产日韩91久久久久久360 | 一级黄片毛片免费看 | 午夜久久久久 | 亚洲一区二区三区在线免费观看 | 我爱我色成人网 | 国产porn在线 | 日韩一级精品 | 一级做a爱片性色毛片 | 嗯~啊~弄嗯~啊h高潮视频 | 欧美久久久一区二区三区 | asian超清日本肉体pics | 久久国产亚洲视频 | 少妇一级淫片高潮流水电影 | 看一级毛片 | 护士hd欧美free性xxxx | 青草视频在线观看视频 | 欧美一级美片在线观看免费 | 欧美韩国日本在线 | 毛片在线免费观看完整版 | 免费看成人av | 欧美亚洲国产一区二区三区 | 欧美一级高潮 | 欧美视频一区二区 | 在线观看免费视频麻豆 | 黄网站免费观看视频 | 国产成年人在线观看 | 在线无码|