【发布时间】:2018-06-02 21:22:43
【问题描述】:
问题表述:给定两个整数 t 和 l,指定一个长度为 l 的二进制代码,使得我们在恒定时间内每 (t-1) 位都有值为 1 的位。
例如,给定 t=3 和 l=10,结果为 1001001001。
我能想到的解决方案是对值为 1 的二进制代码进行一些移位:
A1=1
A2=A1>>3
A3=A1>>(3x2)
result=A1||A2||A3
但是,这个解决方案效率不高。
我想要的是在恒定时间内解决这个问题。
【问题讨论】:
-
我怀疑你能否在“恒定”时间内做到这一点。至少,它会是 O(l),不是吗?