2 comments

[ 4.1 ms ] story [ 13.7 ms ] thread
Very easily tricked. See e.g. this wrong factorial implementation:

int fun(int n){

if (n==1 || n==2){

  return 1;
}else{

  return fun(1) + fun(n-2);
}

}

"The function recursively calls itself twice, with n-2 and 1 as arguments. This creates a binary tree with a depth of n, and each node has two children. Therefore, the total number of nodes in the tree is 2^n. Since each node represents a function call, the time complexity is O(2^n)."