Sobes.tech
Middle — Senior

Qanday qilib qarama-qarshi x bilan aynalanadigan nuqtalar juftligining mavjudligini samarali tekshirish mumkin?

sobes.tech AI

AIdan javob

X qiymatlari teskari bo'lgan nuqtalar juftligini samarali tekshirish uchun tez qidiruv uchun ma'lumotlar tuzilmasi — masalan, to'plam (set) — ishlatilishi mumkin.

Algoritm:

  1. Barcha nuqtalarni to'plamga joylashtiring, shunda O(1) qidiruv mumkin bo'ladi.
  2. Har bir nuqta (x, y) uchun, to'plamda (-x, y) nuqtasi bor-yo'qligini tekshiring.

Agar bunday nuqta topilsa, bu Y o'qiga nisbatan aynalish juftligi mavjudligini anglatadi.

Python misoli:

points = [(1, 2), (-1, 2), (3, 4), (5, 6)]
point_set = set(points)

for x, y in points:
    if (-x, y) in point_set:
        print(f"Aynalish juftligi topildi: ({x}, {y}) va ({-x}, {y})")

Ushbu yondashuv O(n) vaqt ichida ishlaydi, bu katta ma'lumotlar to'plamlari uchun samarali.