"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > Leetcode – أفضل مقابلة –. عنصر الأغلبية

Leetcode – أفضل مقابلة –. عنصر الأغلبية

تم النشر بتاريخ 2024-11-25
تصفح:689

Leetcode — Top Interview –. Majority Element

إنها مشكلة سهلة مع الوصف:

نظرًا لمصفوفة أرقام بالحجم 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 عبر الإنترنت لعنصر الأغلبية.

هذا كل شيء! إذا كان هناك أي شيء آخر للمناقشة فلا تتردد في ترك تعليق، وإذا فاتني أي شيء، فأخبرني حتى أتمكن من التحديث وفقًا لذلك.

حتى المشاركة التالية! :)

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/bendlmp/leetcode-top-interview-150-169-majority-element-4a1d؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3