以下方法的时间复杂度是多少?两个参数给我带来了很多困惑。提前致谢。
public int count(int m, int n) {
if(m == 1 || n == 1) return 1;
return count(m-1, n) + count(m, n-1);
}
答案 0 :(得分:3)
这是O(2^(n+m))
。
可以使用归纳法证明,诱导步骤是:
T(n,m) = T(n-1,m) + T(n, m-1) =(*) 2^(n+m-1) + 2^(n+m-1) = 2*2^(n+m-1) = 2^(n+m)
其中(*)是诱导假设。