Menu
CoddyTech

Two Sum II: Sorted Input

Bạn nhận được một mảng (array) số nguyên numbers được sắp xếp theo thứ tự không giảm và một số nguyên target. Có chính xác một cặp vị trí khác nhau chứa hai giá trị có tổng bằng target. Hãy trả về hai vị trí đó dưới dạng chỉ số bắt đầu từ 0, với chỉ số nhỏ hơn đứng trước.

Hàm

twoSumSorted(numbers: integer-array, target: integer) → integer-array
numbersinteger-array
mảng số nguyên đã được sắp xếp
targetinteger
tổng của hai giá trị phải đạt tới
Trả vềinteger-array
hai chỉ số bắt đầu từ 0 [i, j] với i < j và numbers[i] + numbers[j] == target

Ràng buộc

  • 2 ≤ numbers.length ≤ 104
  • -5 × 108 ≤ numbers[i] ≤ 5 × 108
  • -109 ≤ target ≤ 109
  • numbers được sắp xếp theo thứ tự không giảm.
  • Có đúng một cặp chỉ số i < j sao cho numbers[i] + numbers[j] == target.

Ví dụ

Đầu vào
numbers = [-4, 1, 3, 8, 12]target = 9
Đầu ra
[1, 3]
Giải thích
1 nằm ở chỉ số 1 và 8 nằm ở chỉ số 3, và 1 + 8 = 9. Không có cặp nào khác có tổng bằng 9: ví dụ, -4 + 12 = 8.
challenge icon

Câu hỏi mở rộng

Bạn có thể giải bài này trong thời gian O(n) với bộ nhớ phụ O(1) không?

Đặt lại code
def twoSumSorted(numbers, target):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

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

Đầu ra mong đợi

[1, 3]