Hai số có tổng bằng K
Dễmảnghash map7 test · 3 giây
Cho dãy n số nguyên và số K. Tìm hai vị trí i < j sao cho aᵢ + aⱼ = K.
- Nếu có nhiều cặp, chọn cặp có j nhỏ nhất; nếu vẫn hòa, chọn i nhỏ nhất.
- Nếu không có cặp nào, in
-1. - Gợi ý: duyệt từ trái sang phải và dùng hash map lưu các giá trị đã gặp → O(n).
Dữ liệu vào
Dòng 1: n K (1 ≤ n ≤ 10⁵, |K| ≤ 2·10⁹).
Dòng 2: n số nguyên (|aᵢ| ≤ 10⁹).
Dữ liệu ra
Hai số i j (đánh số từ 1), hoặc -1.
Ví dụ
Input
5 9 2 7 11 15 1
Output
1 2
2 + 7 = 9 ở vị trí 1 và 2
Input
3 10 1 2 3
Output
-1
Không có cặp nào
Bài tiếp theo: Có phần tử trùng lặp không? →
Input (stdin)
Output
Bấm “Chạy thử” để xem kết quả với input bên trái.