Unique BST's
Given an integer N, Find the total number of unique binary search trees that can be made using values from 1 to N.
Example 1:
Input:
N = 2
Output: 2
Explanation:for N = 2, there are 2 unique
BSTs
     1               2  
      \            /
       2         1
Example 2:
Input:
N = 3
Output: 5
Explanation: for N = 3, there are 5
possible BSTs
  1           3     3       2     1
    \        /     /      /  \     \
     3      2     1      1    3     2
    /      /       \                 \
   2      1         2                 3
Since the answer can be very large, return the answer modulo 1000000007.
c++ implementation:
int numTrees(int n) 
    {
        long long t[n+1];
        fill_n(t, n + 1, 0);
        t[0]=1;
        t[1]=1;
        
        for(int i=2;i<=n;i++)
        for(int j=0;j<i;j++)
        t[i]=(t[i]+(t[j]*t[i-j-1]))%1000000007;
        
        return t[n];
    }Time Complexity: O(n^2) 
space Complexity: O(n) 
 
No comments