假设我们有一个n个不同的第二个值的数组。我们必须检查是否有可能从12点钟开始,仅通过增加或减去给定的秒数就可以回到12点。我们可以只使用给定的所有秒数一次,可以添加秒数也可以减去秒数。
因此,如果输入像秒= [40,90,50],那么输出将为True,因为它可以加40,然后减90,然后再加50。
让我们看下面的实现以更好地理解-
def solve(seconds): size = 2**len(seconds) for c in range(size): add = 0 for j in range(len(seconds)) : if c & (1 << j): add += seconds[j] else: add -= seconds[j] if add % (24 * 60) == 0: return True return False seconds = [40,90,50] print(solve(seconds))
[40,90,50]输出结果
True