Menu
CoddyTech
flag Ar iconالعربيةdown icon

Swim in Rising Water

تحصل على شبكة n × n من الارتفاعات تحتوي على كل عدد من 0 إلى n²-1 مرة واحدة بالضبط، على شكل قائمة من الصفوف. يبدأ هطول المطر عند الزمن 0، وعند الزمن t يكون الماء عند ارتفاع t في كل مكان، لذا تكون كل خلية ارتفاعها t أو أقل مغمورة بالماء. تبدأ في الخلية العلوية اليسرى. يمكنك السباحة من خلية إلى خلية تشترك معها في ضلع عندما تكون كلتاهما مغمورتين بالماء، ولا تستغرق السباحة أي وقت. أعد أقرب وقت يمكنك فيه الوصول إلى الخلية السفلية اليمنى.

الدالة

swimInWater(grid: integer-2d-array) → integer
gridinteger-2d-array
الارتفاعات، على شكل قائمة من n صفوف، يحتوي كلٌّ منها على n أعداد
تُرجعinteger
أبكر وقت يمكنك فيه الوصول إلى الخلية السفلية اليمنى

القيود

  • n == grid.length == grid[i].length
  • 1 ≤ n ≤ 100
  • 0 ≤ grid[i][j] ≤ n²-1
  • تظهر كل قيمة من 0 إلى n²-1 مرة واحدة بالضبط.

أمثلة

المدخلات
grid = [[0, 2], [3, 1]]
المخرجات
2
الشرح
عبر الخلية العلوية اليمنى، يكون المسار 0، 2، 1، وأعلى خلية فيه هي 2. وعبر الخلية السفلية اليسرى، يكون المسار 0، 3، 1، وأعلى خلية فيه هي 3. عند الزمن 2 يكون المسار الأول تحت الماء، لذا تكون الإجابة 2.

lock icon+13 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

إذا كان من الممكن أن تتكرر الارتفاعات وتصل إلى 10^9، فأيٌّ من أساليبك سيظل يعمل دون تغيير، وما المجال الذي ستجري عليه البحث الثنائي؟

إعادة ضبط الشيفرة
def swimInWater(grid):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

grid = [[0, 2], [3, 1]]

المتوقع

2