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

Find the Duplicate Number

لديك مصفوفة nums تحتوي على n+1 عددًا صحيحًا، كلٌّ منها بين 1 وn. تظهر قيمة واحدة بالضبط أكثر من مرة، وقد تظهر مرات عديدة، وتُعيد تلك القيمة.

حلّ المسألة دون تغيير nums وباستخدام مقدار ثابت فقط من الذاكرة الإضافية.

الدالة

findDuplicate(nums: integer-array) → integer
numsinteger-array
n+1 عددًا صحيحًا، كلٌّ منها بين 1 و n
تُرجعinteger
القيمة التي تظهر أكثر من مرة

القيود

  • 1 ≤ n ≤ 104
  • nums.length == n+1
  • 1 ≤ nums[i] ≤ n
  • تظهر قيمة واحدة بالضبط مرتين أو أكثر؛ وتظهر كل قيمة أخرى مرة واحدة على الأكثر.

أمثلة

المدخلات
nums = [2, 5, 1, 3, 5, 4]
المخرجات
5
الشرح
هنا n تساوي 5، والعدد 5 يقع في الموضعين 1 و4، لذا فالإجابة هي 5. وتظهر كل قيمة أخرى من 1 إلى 5 مرة واحدة.

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

challenge icon

سؤال إضافي

يحافظ البحث الثنائي على القيم على كلتا القاعدتين ضمن زمن O(n log n). هل يمكنك الحفاظ عليهما ضمن زمن O(n)؟

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

الحالة 1

الحالة 2

المدخلات

nums = [2, 5, 1, 3, 5, 4]

المتوقع

5