إنها مشكلة سهلة مع الوصف:
نظرًا لمصفوفة أرقام بالحجم n، قم بإرجاع عنصر الأغلبية.
عنصر الأغلبية هو العنصر الذي يظهر أكثر من ⌊n / 2⌋ مرة. قد تفترض أن عنصر الأغلبية موجود دائمًا في المصفوفة.
مثال 1:
الإدخال: الأعداد = [3,2,3]
الإخراج: 3مثال 2:
الإدخال: الأعداد = [2,2,1,1,1,2,2]
الإخراج: 2قيود:
n == الأعداد.طول
1 -109
للوهلة الأولى قد تفكر في إنشاء خريطة ثم جمع الخريطة التي تظهر أكثر.
في التفكير مرة أخرى، إذا كان بإمكانك الفرز والحصول على أكثر ما يظهر، فسيكون ذلك كافيًا.
ومع ذلك هناك طريقة أبسط. إذا قرأت الوصف بعناية فسوف تفهم أن عنصر الأغلبية هو العنصر الذي يظهر في أكثر من نصف المصفوفة.
مع أخذ ذلك في الاعتبار، إذا قمت بفرزها وأخذت الفهرس الأوسط، فإن ذلك من شأنه أن يحل المشكلة:
class Solution { public int majorityElement(int[] nums) { // sort Arrays.sort(nums); // if by majority element it means that appears more than half of nums size // then picking the middle element would be the one that's a majority element return nums[nums.length / 2]; } }
وقت التشغيل: 4 مللي ثانية، أسرع من 54.53% من عمليات إرسال Java عبر الإنترنت لعنصر الأغلبية.
استخدام الذاكرة: 53.5 ميجابايت، أقل من 9.23% من عمليات إرسال Java عبر الإنترنت لعنصر الأغلبية.
—
هذا كل شيء! إذا كان هناك أي شيء آخر للمناقشة فلا تتردد في ترك تعليق، وإذا فاتني أي شيء، فأخبرني حتى أتمكن من التحديث وفقًا لذلك.
حتى المشاركة التالية! :)
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3