मान लीजिए कि हमारे पास एक संख्या n है, हमें उन अद्वितीय BST की संख्या ज्ञात करनी है जिन्हें हम [0, n) से संख्याओं के साथ उत्पन्न कर सकते हैं। यदि उत्तर बहुत बड़ा मॉड है तो परिणाम 10^9+7
इसलिए, यदि इनपुट n =3 जैसा है, तो आउटपुट 5
. होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- संख्या :=1
- संप्रदाय :=n + 1
- 1 से n की श्रेणी में i के लिए, करें
- संख्या :=अंक * n + i
- संख्या :=न्यूमर मॉड एम
- सांप्रदायिक:=संप्रदाय * मैं
- संप्रदाय :=denom mod m
- संख्या:=अंक * (denom^(m-2)) mod m
- वापसी संख्या मोड एम
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, n): m = 10 ** 9 + 7 numer = 1 denom = n + 1 for i in range(1, n + 1): numer *= n + i numer %= m denom *= i denom %= m numer *= pow(denom, m-2, m) return numer % m ob = Solution() print(ob.solve(4))
इनपुट
4
आउटपुट
14