日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode: Unique Binary Search Trees [095]

發(fā)布時間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode: Unique Binary Search Trees [095] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【題目】

Given?n, how many structurally unique?BST's?(binary search trees) that store values 1...n?

For example,
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



【題意】

? ? 給定一個數(shù)字n, 問用1,2,3,4,5...n這n個值,能構(gòu)造多少棵合法的二叉搜索樹


【思路】

? ? 對于給定[1,n]區(qū)間,先確定全部可能的根。如果根為k, 則該二叉樹左子樹的取值區(qū)間為[1, k-1]和右子樹的取值區(qū)間[k+1, n]。
? ? 而二叉搜索搜索樹的隨意一個節(jié)點的左右子樹也是二叉搜索樹,因此我們須要確定[1,k-1]和[k+1, n]上構(gòu)造的二叉搜索樹的數(shù)目, 比方分別為left[k], right[k]。

則以k的根的二叉搜索樹的數(shù)目即為,left[k]*right[k]
? ??
? ? 本題用遞歸來解決。


【代碼】

class Solution { public:int binaryTreeNums(int start, int end){//[start, end]區(qū)間上構(gòu)造二叉樹的數(shù)目if(start>=end)return 1; //start<end表示空子樹, start==end表示葉子節(jié)點int treeNums=0;for(int root=start; root<=end; root++){int leftCount = binaryTreeNums(start, root-1); //計算左子樹的數(shù)目int rightCount = binaryTreeNums(root+1, end); //計算右子樹的數(shù)目treeNums+= leftCount*rightCount;}return treeNums;}int numTrees(int n) {if(n==0)return 0;return binaryTreeNums(1, n);} };

轉(zhuǎn)載于:https://www.cnblogs.com/mengfanrong/p/5152210.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的LeetCode: Unique Binary Search Trees [095]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。