Files
leetcode/96.unique-binary-search-trees.java
2025-10-31 10:16:06 +08:00

33 lines
633 B
Java

/*
* @lc app=leetcode id=96 lang=java
*
* [96] Unique Binary Search Trees
*/
// @lc code=start
class Solution {
/**
* dp[n] = dp[n-1] + dp[1]+dp[n-2]
*
* @param n
* @return
*/
public int numTrees(int n) {
int[] dp = new int[n+1];
for(int i=1; i<=n; i++) {
dp[i] = 0;
}
dp[1] = 1;
for(int i=2; i<=n; i++) {
for(int j=0; j<=i-1;j++) {
int left = j>0?dp[j]:1;
int right = i-1-j>0?dp[i-1-j]:1;
dp[i] += left*right;
}
}
return dp[n];
}
}
// @lc code=end