Given an integer n, return *the number of structurally unique **BST'*s (binary search trees) which has exactlynnodes of unique values from1ton.
Example 1:
**Input:** n = 3
**Output:** 5
Example 2:
**Input:** n = 1
**Output:** 1
Constraints:
1 <= n <= 19
ac
classSolution {publicintnumTrees(int n) {// edge caseif (n <=1) return1;int[] dp =newint[n+1]; // For a number n, how many trees can be constructed. dp[0] =1;for (int i =1; i <= n; i++) {for (int j =0; j < i; j++) { // For an n-length array, e.g. [0,1,2], iterate each element as root node. dp[i] += dp[j] * dp[i-j-1]; } }return dp[n]; }}/*this dp is special, like dp + divide&conquersimilar: https://leetcode.com/problems/encode-string-with-shortest-length/description/*/