zhuxuanyu0720 最近的时间轴更新
zhuxuanyu0720

zhuxuanyu0720

V2EX 第 631033 号会员,加入于 2023-05-26 09:09:15 +08:00
zhuxuanyu0720 最近回复了
2 天前
回复了 V2April 创建的主题 生活 从童年保留至今的阴影:“去敬一圈酒”
要是我的话,就让他们给我敬酒了,而且他们酒杯必须比我低
140 天前
回复了 david101 创建的主题 问与答 如何培养父母浪费的好习惯?
为什么总有人自以为可以改变他人
167 天前
回复了 name68 创建的主题 游戏 黑神话悟空热度真高,想玩,但是我晕 3d,怎么解?
关闭动态模糊之类的,或者吐多了就好了适应就好了
257 天前
回复了 xxq2334 创建的主题 问与答 女生是不是听到优惠就会走不动道,就想买?
“两箱 12 瓶,每次加油都用得 12 次才可以,一个月两次加油得 6 个月”,刚开始这句话没看明白,后来才看懂,总共 12 瓶,每次加油用 1 瓶,如果一个月加 2 次油要 6 个月才用完
266 天前
回复了 shtzlwdmkf 创建的主题 生活 北漂 - 打算不租房,住房车可行吗
你需要考虑:
房车的设备维护,时不时可能某些地方出现问题,要维修一下
还要考虑在哪接水
还有垃圾的处理
最最重要的是你的屎尿要倒哪里,还有这些后期清理的问题

建议在 B 站看看 https://www.bilibili.com/video/BV1KM411k7jP/?spm_id_from=333.999.0.0&vd_source=c5d4428195c3e22786ed27321cf2920d
动态规划解法:


def countBits(n):
result = [0] * (n+1)
offset = 1
for i in range(1, n+1):
if offset * 2 == i:
offset *= 2
result[i] = result[i - offset] + 1
return result[:n]

offset 代表的是该区间内最小数字(即起始数字)的二进制位数。offset 变量代表当前位置所属的那个长度为 offset 的区间的起始点。举例来说,当 offset=1 时,表示区间[0,1];当 offset=2 时,表示区间[2,3];当 offset=4 时,表示区间[4,7].

有一个数学规律
对于任意一个数字 x,如果 x 和 x+1 的二进制位数相同,那么 x 和 x+1 对应的 1 的个数,最多只相差 1 ,这个特性就被用来推导 result 数组中相邻两个数字对应的 1 的个数

所以通过区间分治的方式,算法可以高效地确定每一个区间的起点,并利用相邻区间的结果推导出当前区间每个数字对应的 1 的个数,从而达到 O(n)的时间复杂度。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2089 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 11:56 · PVG 19:56 · LAX 03:56 · JFK 06:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.