Middle — Senior
Кандай эффективдүү түрдө каршы x менен айна жуптууларынын бар экенин текшерсе болот?
sobes.tech AI
AIден жооп
Тиирүү жана натыйжалуу текшерүү үчүн, каршы маанилерге ээ болгон чекиттердин жуптуулугун, тез издөө үчүн маалымат түзүмүн колдонсо болот — мисалы, топтому (set).
Алгоритм:
- Бардык чекиттерди топтомуна салыңыз, O(1) издөө үчүн.
- Ар бир чекит (x, y) үчүн, топтомуна (-x, y) чекити бар-жогун текшериңиз.
Эгер мындай чекит табылса, ал Y огу боюнча айна жуптуулугу бар экенин билдирет.
Python мисалы:
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"Табылган айна жуптуулугу: ({x}, {y}) жана ({-x}, {y})")
Бул ыкма O(n) убакытта иштейт жана чоң маалымат топтомдору үчүн эффективдүү.