Menu
CoddyTech

Two Sum II: Sorted Input

ניתן לך מערך של מספרים שלמים numbers הממוינים בסדר לא יורד, ומספר שלם target. בדיוק זוג אחד של מיקומים שונים מכיל שני ערכים שסכומם הוא target. החזר את שני המיקומים האלה כאינדקסים שמתחילים ב-0, כשהאינדקס הקטן יותר מופיע ראשון.

פונקציה

twoSumSorted(numbers: integer-array, target: integer) → integer-array
numbersinteger-array
מערך המספרים השלמים הממוינים
targetinteger
הסכום שאליו שני הערכים חייבים להגיע
מחזירהinteger-array
שני האינדקסים המתחילים ב־0 [i, j] כך ש־i < j ו־numbers[i] + numbers[j] == target

אילוצים

  • 2 ≤ numbers.length ≤ 104
  • -5 × 108 ≤ numbers[i] ≤ 5 × 108
  • -109 ≤ target ≤ 109
  • numbers מסודר בסדר לא יורד.
  • בדיוק זוג אחד של אינדקסים i < j מקיים numbers[i] + numbers[j] == target.

דוגמאות

קלט
numbers = [-4, 1, 3, 8, 12]target = 9
פלט
[1, 3]
הסבר
1 נמצא באינדקס 1 ו-8 באינדקס 3, ו-1 + 8 = 9. שום זוג אחר לא מגיע ל-9: לדוגמה, -4 + 12 = 8.

lock icon+13 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

האם תוכל לפתור זאת בזמן O(n) ובשימוש בזיכרון נוסף של O(1)?

איפוס הקוד
def twoSumSorted(numbers, target):
    # כתבו כאן קוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

numbers = [-4, 1, 3, 8, 12]
target = 9

צפוי

[1, 3]