leetcode96. 不同的二叉搜索树 动归vs数学?
生活随笔
收集整理的這篇文章主要介紹了
leetcode96. 不同的二叉搜索树 动归vs数学?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)整數(shù) n,求以?1 ...?n?為節(jié)點(diǎn)組成的二叉搜索樹有多少種?
示例:
輸入: 3
輸出: 5
解釋:
給定 n = 3, 一共有 5 種不同結(jié)構(gòu)的二叉搜索樹:
? ?1 ? ? ? ? 3 ? ? 3 ? ? ?2 ? ? ?1
? ? \ ? ? ? / ? ? / ? ? ?/ \ ? ? ?\
? ? ?3 ? ? 2 ? ? 1 ? ? ?1 ? 3 ? ? ?2
? ? / ? ? / ? ? ? \ ? ? ? ? ? ? ? ? \
? ?2 ? ? 1 ? ? ? ? 2 ? ? ? ? ? ? ? ? 3
思路:dp[n]代表答案,則dp[n]=
左子樹1節(jié)點(diǎn),右子樹n-1節(jié)點(diǎn)
左子樹2節(jié)點(diǎn),右子樹n-2節(jié)點(diǎn)
................................
左子樹n-1節(jié)點(diǎn),右子樹1節(jié)點(diǎn)
所有情況加起來。
public class Solution {public int numTrees(int n) {int[] dp = new int[n + 1];dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; ++i) {for (int j = 1; j <= i; ++j) {dp[i] += dp[j - 1] * dp[i - j];}}return dp[n];} }官方有一個(gè)數(shù)學(xué),太強(qiáng)了。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的leetcode96. 不同的二叉搜索树 动归vs数学?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis的入门/原理/实战大总结
- 下一篇: 快排-荷兰国旗