Guest User

Untitled

a guest
Jul 16th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. //DP solution
  2. //Time: O(n^2), 0ms
  3. //Space: O(n)
  4. class Solution {
  5. public int numTrees(int n) {
  6. //Initialize the table with margin
  7. int[][] table = new int[n + 2][n + 2];
  8. //Base case
  9. for(int i = 0; i < n + 2; i++) {
  10. for(int j = 0; j <= i; j++) {
  11. table[i][j] = 1;
  12. }
  13. }
  14. //Fill in the table diagnally
  15. for(int i = 1; i < n; i ++) {
  16. for(int j = 1; j < n + 1 - i; j++) {
  17. for(int k = j; k <= i + j;k++) {
  18. table[j][i + j] += table[j][k - 1] * table[k + 1][i + j];
  19. }
  20. }
  21. }
  22. /*
  23. for(int i = 0; i < n + 2; i++) {
  24. for(int j = 0; j < n + 2; j++) {
  25. System.out.print(table[i][j] + " ");
  26. }
  27. System.out.println();
  28. }
  29. */
  30. //Return the top right corner
  31. return table[1][n];
  32. }
  33. }
Add Comment
Please, Sign In to add comment