תיאור השאלה
You are climbing a staircase that takes n steps to reach the top. Each time you can climb either 1 or 2 steps. In how many distinct ways can you climb to the top?
איך פותרים?
למדרגה n מגיעים או מ־n-1 או מ־n-2, ולכן מספר הדרכים הוא סכום שני הקודמים, בדיוק כמו פיבונאצ'י. מספיק לשמור שני משתנים. סיבוכיות: O(n) זמן, O(1) זיכרון.
פתרון קוד
JavaScript
Python
function climbStairs(n) {
let prev = 1;
let curr = 1;
for (let i = 2; i <= n; i++) {
[prev, curr] = [curr, prev + curr];
}
return curr;
}
לעבור את ראיון העבודה הבא שלך בהצלחה
קורס דיגיטלי מקיף עם +25 שיעורים מעשיים, כשעתיים של וידאו, וליווי של מראיין בכיר.