Given n, how many structurally unique BST’s (binary search trees) that store values 1 … n?
Example:
Input
: 3
Output
: 5
Explanation
:
Given n
= 3, there are a total of
5 unique BST's
:
1 3 3 2 1
\
/ / / \ \
3 2 1 1 3 2
/ / \ \
2 1 2 3
DP:
class Solution {
public int numTrees(int n
) {
int[] results
= new int[n
+ 1];
results
[0] = 1;
for (int i
= 1; i
<= n
; i
++) {
for (int j
= 1; j
<= i
; j
++) {
results
[i
] += results
[j
- 1] * results
[i
- j
];
}
}
return results
[n
];
}
}
转载请注明原文地址: https://mac.8miu.com/read-511532.html