有没有可能解决这个问题的解决方案的时间复杂性比线性好?有没有可能解决这个问题,解决方案的时间复杂度比线性更好?
N根灯泡通过导线连接。每个灯泡都有一个与之相关的开关,但由于接线错误,开关也会将所有灯泡的状态改变到当前灯泡的右侧。给定所有灯泡的初始状态,找到开启所有灯泡所需按下的最小开关数量。您可以多次按下相同的开关。
注意:0代表灯泡关闭,1代表灯泡开启。
输入:[0 1 0 1]
步骤:
press switch 0 : [1 0 1 0]
press switch 1 : [1 1 0 1]
press switch 2 : [1 1 1 0]
press switch 3 : [1 1 1 1]
回程:4
如果您的输入是一个固定宽度的整数存储的位矢量,是的。否则,你将如何避免迭代整个数组? – Veedrac
我同意不可能比线性时间做得更好 –