मान लीजिए हमारे पास एक संख्या n है, हमें पास्कल के त्रिभुज की nवीं (0-इंडेक्स्ड) पंक्ति ढूंढनी है। जैसा कि हम जानते हैं पास्कल का त्रिभुज निम्नानुसार बनाया जा सकता है:
- सबसे ऊपर की पंक्ति में 1 की सरणी होती है।
- बाद की पंक्ति ऊपर-बाएं और ऊपर-दाएं की संख्याओं को जोड़कर बनाई जाती है।
कुछ पंक्तियां इस प्रकार हैं:
इसलिए, यदि इनपुट 4 है, तो आउटपुट [1, 4, 6, 4, 1] होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- यदि n == 0, तो [1] वापस करें
- यदि n == 1, तो [1,1] वापस करें
- ls := [1,1] के साथ सूची, temp := [1,1] के साथ सूची
- i को 2 से n+1 तक के लिए करें:
- ls := temp
- temp := [1] मान वाली सूची
- i को 0 से ls के आकार -1 तक के लिए करें:
- ls[i] + ls[i+1] को temp के अंत में जोड़ें
- temp के अंत में 1 जोड़ें
- temp वापस करें
उदाहरण
class Solution:
def solve(self, n):
if n == 0:
return [1]
if n == 1:
return [1,1]
ls = [1,1]
temp = [1,1]
for i in range(2, n+1):
ls = temp
temp = [1]
for i in range(len(ls)-1):
temp.append(ls[i] + ls[i+1])
temp.append(1)
return temp
ob = Solution()
print(ob.solve(4))
इनपुट
4
आउटपुट
[1, 4, 6, 4, 1]