动态规划解法:
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)的时间复杂度。
根据你描述的情况,这个男生看起来有些缺乏情感智力和处理关系的技巧。我总结了以下几点评价:
他似乎期望女朋友单方面给予他情绪价值和关怀,但自己也缺乏同理心,在女朋友需要支持时没有给予足够的体谅和安慰。
他对一些实际矛盾问题(比如异地办公安排改变)缺乏主动沟通和解决的诚意,只是一味追究责任在谁。
在争吵时,他更多把注意力放在自己是"对还是错",而不是真正去倾听和理解对方的感受。
他对感情的期望值很高,认为女朋友必须时刻关心和取悦他,如果不满足就会产生很大的情绪波动。
他缺乏顾及他人感受和需求的意识,比如在女朋友已经情绪低落的情况下,还强求索取关注。
总的来说,这位男生在处理感情方面显得有些自私和幼稚,缺乏相互体谅和妥协。情感智力和沟通技巧都需要进一步提高。不过分手也许就是一个重新自我反省和成长的机会。
1.在 COS 存储端,可以考虑用每个 object name 来决定顺序,例如加上时间戳等唯一 ID,而不是用 append 的方式。
2.也可以考虑使用消息队列,Worker 按序从 MQ 中消费结果文件路径,进一步确保顺序。
3.对结果文件本身,也可以添加序号或标识,这样即使顺序错乱,解析时也能恢复正确顺序
华为智选的九阳烧水壶,可以手机远程控制烧开水,能设置水温和保温时长,这个提高生活幸福指数