我有以下编程问题:
给定一个整数长度数组作为输入,其中每个元素表示所需绳索的长度,求出原始绳索的最小长度,假设在每一步,你只能是绳索长度的一半,并且每根绳索的长度必须是一个整数。如果不存在这样的绳子,则输出 -1。
关于将长度为 x 的绳索“减半”的附加信息:
例如,如果我需要 [3, 5, 2],那么我需要的最小绳索尺寸是 10,因为 '10' 可以分成 2 个 '5',剩下的 '5' 之一可以分成 '3'和'2'。然后,我最终会得到我所需要的 [3, 5, 2]。也允许以不需要的过多绳索结束。
我提供了一个功能,可以确定是否可以将特定长度的绳索分成所需的长度。
我最初想在搜索空间中进行某种二分搜索 [需要绳索的最大长度,___],但我不确定上限应该是多少。此外,我意识到这不一定有效,因为较长的绳索不一定能保证绳索可以分成所需的长度。
现在,我唯一的解决方案是线性搜索,但这似乎太慢了,我不确定会导致没有有效绳索的条件。
非常感谢任何指导!