समस्या
पहली पंक्ति [1] है। हर अगली पंक्ति 1 से शुरू और 1 पर समाप्त होती है। हर आंतरिक मान उसके ठीक ऊपर की दो प्रविष्टियों का योग होता है। पहले rows पंक्तियाँ लौटाएँ, जिसमें सबसे ऊपर एकल 1 से शुरू करें।
pascals_triangle(rows) को लागू करें।
इनपुट
rows: कितनी पंक्तियाँ जनरेट करनी हैं।
आउटपुट
पंक्तियों की एक सूची लौटाएँ, ऊपर से शुरू करें; हर पंक्ति पूर्णांकों (integers) की एक सूची है।
सीमाएँ
0 ≤ rows ≤ 60। हर प्रविष्टि एक signed 64-bit integer में समा जाती है। यदि rows शून्य है तो एक खाली सूची लौटाएँ।
उदाहरण
इनपुट:
rows = 4
अपेक्षित आउटपुट:
expected = [
[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1]
]
इनपुट:
long long rows = 4;
अपेक्षित आउटपुट:
std::vector<std::vector<long long>> expected = {
{1},
{1, 1},
{1, 2, 1},
{1, 3, 3, 1}
};
इनपुट:
long rows = 4;
अपेक्षित आउटपुट:
long[][] expected = new long[][] {
new long[] {1},
new long[] {1, 1},
new long[] {1, 2, 1},
new long[] {1, 3, 3, 1}
};
व्याख्या
तीसरी पंक्ति में 2, 1 + 1 है। चौथी पंक्ति में दोनों आंतरिक 3, 1 + 2 और 2 + 1 हैं।
इनपुट:
rows = 0
अपेक्षित आउटपुट:
expected = []
इनपुट:
long long rows = 0;
अपेक्षित आउटपुट:
std::vector<std::vector<long long>> expected = {};
इनपुट:
long rows = 0;
अपेक्षित आउटपुट:
long[][] expected = new long[][] {};
व्याख्या
कोई पंक्ति नहीं माँगी गई है, इसलिए एक खाली सूची लौटाएँ।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
हर row 1 से शुरू और 1 पर खत्म होती है, और बीच के values ऊपर वाले दो values से आते हैं।
संकेत 2
Scratch से फिर से बनाने के बजाय, previous row से एक-एक row बनाओ।
संकेत 3
Zero-row case को empty list return करके तुरंत handle करो।
अपेक्षित जटिलता
समय O(rows^2), अतिरिक्त स्थान O(rows^2)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।