Menu
CoddyTech

Redundant Connection

بدأت الشبكة على شكل شجرة: n عقد، مرقمة من 1 إلى n، متصلة بواسطة n-1 حافة غير موجهة بلا دورات. ثم أُضيفت حافة أخرى بين عقدتين لم تكونا متصلتين مباشرة، لذا تحتوي القائمة edges الآن على n حواف ودورة واحدة بالضبط.

أعِد حافة يمكنك إزالتها بحيث تشكّل الحواف n-1 الأخرى شجرة مرة أخرى. إذا كانت عدة حواف مناسبة، فأعِد الحافة التي تظهر أخيرًا في edges، على هيئة الزوج [a, b] تمامًا كما هو مكتوب هناك.

الدالة

findRedundantConnection(edges: integer-2d-array) → integer-array
edgesinteger-2d-array
عدد n من الحواف غير الموجّهة، كلٌّ منها زوج [a, b] من العقد المرقّمة بدءًا من 1
تُرجعinteger-array
حافة الدورة التي تظهر أخيرًا في edges، مكتوبة كما هي هناك

القيود

  • 3 ≤ n ≤ 5000، حيث n = edges.length
  • edges[i] = [a, b] حيث 1 ≤ a, b ≤ n وa ≠ b
  • لا تظهر أي حافة مرتين، في أيٍّ من الاتجاهين.
  • تربط الحواف جميع العقد البالغ عددها n، وتحتوي على دورة واحدة بالضبط.

أمثلة

المدخلات
edges = [[1, 2], [1, 3], [2, 3]]
المخرجات
[2, 3]
الشرح
تُشكّل الحواف الثلاث المثلث 1، 2، 3، لذا فإن حذف أيّ واحدة منها يترك شجرة. تأتي [2, 3] أخيرًا في القائمة.
challenge icon

سؤال إضافي

إذا كانت الحواف موجّهة وكان الرسم البياني الأصلي شجرةً متجذّرة، فأيّ حافة ستزيل عندما تجعل الحافة الإضافية إحدى العقد ذات والدين؟

إعادة ضبط الشيفرة
def findRedundantConnection(edges):
    # اكتب الكود هنا

اختبار #1

اختبار #2

وسيط

edges = [[1, 2], [1, 3], [2, 3]]

الإخراج المتوقع

[2, 3]