يتم إعطاؤك مصفوفة من الأعداد الصحيحة، `arr`، بطول `n`. تمثل الأعداد الصحيحة في `arr` ارتفاعات المباني المتتالية في أفق المدينة. صمم خوارزمية للعثور على **الحد الأدنى لعدد المباني** التي يجب **إزالة**ها لجعل المباني المتبقية تظهر كأفق متجاور. يتم تعريف الأفق المتجاور على أنه مجموعة من المباني حيث يكون ارتفاع أي مبنى في المجموعة أقل تمامًا من ارتفاع المبنى التالي في المجموعة.

اكتب دالة `minimumBuildings(arr: List[int]) -> int` لحل المشكلة، والتي يجب أن تُرجع الحد الأدنى لعدد المباني المراد إزالتها.

**مثال**
```
الإدخال: arr = [3، 5، 7، 9، 4، 1، 5، 8، 6، 2]
الإخراج: 4
توضيح: بإزالة المباني في المؤشرات 1 و3 و4 و7، تشكل المباني المتبقية [3، 7، 4، 1، 5، 2] أفقًا متجاورًا.
```

**قيود**
* يقع طول مصفوفة الإدخال `arr` في النطاق `[2, 10^5]`.
* كل عنصر `arr[i]` يقع ضمن النطاق `[1, 10^4]`.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}