1. Direct Recursion
Intuition
Recursively evaluate T(n) = T(n-1) + T(n-2) + T(n-3).
Algorithm
- If
n == 0, return 0. - If
n == 1 || n == 2, return 1. - Return
solve(n - 1) + solve(n - 2) + solve(n - 3).
#include <iostream> using namespace std; class Solution {public: int tribonacci(int n) { if (n == 0) return 0; if (n == 1 || n == 2) return 1; return tribonacci(n - 1) + tribonacci(n - 2) + tribonacci(n - 3); }}; int main() { Solution sol; cout << "Tribonacci(4): " << sol.tribonacci(4) << endl; return 0;}Time & Space Complexity
- Time complexity:
O(3^n) - Space complexity:
O(n) call stack