📅  最后修改于: 2023-12-03 15:41:40.692000             🧑  作者: Mango
给定一个整数n,我们需要计算长度为n的二进制字符串中,没有连续1的字符串数量。
例如: 当n = 3时,长度为3的二进制字符串有:000、001、010、011、100、101、110、111,其中没有连续1的二进制字符串有:000、001、010、100、101,数量为5。
假设有一个长度为n的没有连续1的二进制字符串,将其补零成长度为n+1的字符串,有以下两种情况:
根据上述思路,我们可以得出递推公式 f(n) = f(n-1) + f(n-2),其中 f(n) 表示长度为n的没有连续1的二进制字符串数量。
def findMaxConsecutiveOnes(n: int) -> int:
a, b = 1, 1
for i in range(2, n+1):
a, b = b, a + b
return b