@@ -0,0 +1,600 @@
+/**%0A * Problem Link: https://leetcode.com/problems/unique-binary-search-trees/%0A * %0A */%0Apublic class Solution %7B%0A    private int%5B%5D mark;%0A    public int numTrees(int n) %7B%0A        mark = new int%5Bn+1%5D;%0A        for(int i=0; i%3C=n; i++) mark%5Bi%5D = -1;%0A        return solve(n);%0A    %7D%0A    %0A    private int solve(int n) %7B%0A        if(mark%5Bn%5D %3E= 0) return mark%5Bn%5D;%0A        if(n == 0) return 1;%0A        if(n == 1) return 1;%0A        if(n == 2) return 2;%0A        mark%5Bn%5D = 0;%0A        for(int left = 0; left %3C n; left++)%7B%0A            mark%5Bn%5D += solve(left) * solve(n-left-1);%0A        %7D%0A        return mark%5Bn%5D;%0A    %7D%0A%7D%0A

Create Unique_Binary_Search_Trees.java