leetcode96. 不同的二叉搜索树(动态规划)
生活随笔
收集整理的這篇文章主要介紹了
leetcode96. 不同的二叉搜索树(动态规划)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個整數(shù) n,求以 1 … n 為節(jié)點組成的二叉搜索樹有多少種?
解題思路
*數(shù)組含義:dp[i] i個節(jié)點的不同組成結(jié)構(gòu)
狀態(tài)轉(zhuǎn)移:任取節(jié)點為根節(jié)點,遍歷左右子樹可能出現(xiàn)的個數(shù),dp[i]=dp[left]dp[right]
初始化:dp[0]=1 空節(jié)點也作為一種情況
代碼
class Solution {public int numTrees(int n) {int[] dp=new int[n+1];dp[0]=1;for(int i=1;i<=n;i++){int total=i-1;for(int j=total;j>=0;j--)dp[i]+=dp[j]*dp[total-j];}return dp[n];} }總結(jié)
以上是生活随笔為你收集整理的leetcode96. 不同的二叉搜索树(动态规划)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode647. 回文子串(动态
- 下一篇: leetcode279. 完全平方数(动