🤖המדריך להייטיקיסט המתחיל
בינוניLeetCode #77

Combinations

עשויה להישאל ב:AmazonGoogle

תיאור השאלה

Given two integers n and k, return all possible combinations of k numbers chosen from the range [1, n]. The answer can be in any order.

איך פותרים?

Backtracking: בונים צירוף בהדרגה. בכל שלב בוחרים מספר גדול מהאחרון שנבחר, ממשיכים ברקורסיה ומוציאים אותו בחזרה. כשהצירוף הגיע לאורך k שומרים עותק. גיזום: לא מתחילים ממספר שאין אחריו מספיק מספרים להשלמה.

פתרון קוד

JavaScript
Python
function combine(n, k) {
  const result = [];
  const current = [];
  function backtrack(start) {
    if (current.length === k) {
      result.push([...current]);
      return;
    }
    for (let i = start; i <= n - (k - current.length) + 1; i++) {
      current.push(i);
      backtrack(i + 1);
      current.pop();
    }
  }
  backtrack(1);
  return result;
}
Book Cover

לעבור את ראיון העבודה הבא שלך בהצלחה

קורס דיגיטלי מקיף עם +25 שיעורים מעשיים, כשעתיים של וידאו, וליווי של מראיין בכיר.

התחל עכשיו ב-149 ₪ בלבד! 🚀