Menu
CoddyTech

Pascal's Triangle

במשולש פסקל, השורה הראשונה היא [1]. כל שורה מאוחרת יותר ארוכה באיבר אחד, מתחילה ומסתיימת ב־1, וכל איבר שביניהן הוא סכום שני האיברים שמעליו ישירות. ניתן לך מספר שלם numRows. החזר את numRows השורות הראשונות של המשולש, כשהשורה העליונה מופיעה ראשונה, וכל שורה היא מערך של מספרים שלמים.

פונקציה

generate(numRows: integer) → integer-2d-array
numRowsinteger
כמה שורות במשולש לבנות
מחזירהinteger-2d-array
numRows השורות הראשונות, מהשורה העליונה תחילה

אילוצים

  • 1 ≤ numRows ≤ 30
  • כל איבר ב־30 השורות הראשונות מתאים למספר שלם מסומן בן 32 סיביות. הגדול ביותר הוא 77558760, באמצע השורה ה־30.

דוגמאות

קלט
numRows = 5
פלט
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
הסבר
כל איבר פנימי מחבר את שני האיברים שמעליו. שורה ארבע: 3 = 1 + 2 וגם 3 = 2 + 1. שורה חמש: 4 = 1 + 3, 6 = 3 + 3, 4 = 3 + 1.
challenge icon

שאלת המשך

האם אפשר להשאיר רק מערך אחד ולעדכן אותו במקום, שורה אחר שורה? באיזה כיוון צריכה לרוץ הלולאה הפנימית, ולמה?

איפוס הקוד
def generate(numRows):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

ארגומנט

numRows = 5

הפלט הצפוי

[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]