Masalah yang mudah dengan perihalannya ialah:
Diberikan nombor tatasusunan saiz n, kembalikan elemen majoriti.
Elemen majoriti ialah elemen yang muncul lebih daripada ⌊n / 2⌋ kali. Anda mungkin menganggap bahawa elemen majoriti sentiasa wujud dalam tatasusunan.
Contoh 1:
Input: nums = [3,2,3]
Keluaran: 3Contoh 2:
Input: nombor = [2,2,1,1,1,2,2]
Keluaran: 2Kekangan:
n == angka.panjang
1 <= n <= 5 * 104
-109 <= angka[i] <= 109
Pada pandangan pertama anda akan berfikir tentang membuat peta kemudian mengumpulkan peta yang paling banyak ditunjukkan.
Setelah difikirkan, jika anda boleh mengisih dan mendapatkan yang paling banyak dipaparkan, itu akan berjaya.
Dan dengan itu terdapat cara yang lebih mudah. Jika anda membaca huraian dengan teliti, anda akan faham bahawa elemen majoriti ialah elemen yang muncul lebih separuh daripada tatasusunan.
Dengan itu, jika anda akan mengisihnya dan mengambil indeks tengah, itu akan menyelesaikan masalah:
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]; } }
Masa Jalan: 4 ms, lebih pantas daripada 54.53% penyerahan dalam talian Java untuk Elemen Majoriti.
Penggunaan Memori: 53.5 MB, kurang daripada 9.23% penyerahan dalam talian Java untuk Elemen Majoriti.
—
Itu sahaja! Jika ada perkara lain untuk dibincangkan, sila tinggalkan ulasan, jika saya terlepas apa-apa beritahu saya supaya saya boleh mengemas kini dengan sewajarnya.
Sehingga post seterusnya! :)
Atas ialah kandungan terperinci Leetcode — Temuduga Teratas –. Elemen Majoriti. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!