首頁  >  文章  >  Java  >  Leetcode——頂尖訪談——。多數元素

Leetcode——頂尖訪談——。多數元素

Linda Hamilton
Linda Hamilton原創
2024-11-04 08:37:30276瀏覽

Leetcode — Top Interview –. Majority Element

這是一個簡單的問題,描述如下:

給定一個大小為 n 的陣列 nums,傳回多數元素。

多數元素是出現超過 ⌊n/2⌋ 次的元素。您可以假設多數元素始終存在於陣列中。

範例1:

輸入:nums = [3,2,3]
輸出:3

範例2:

輸入:nums = [2,2,1,1,1,2,2]
輸出:2

限制:

n == nums.length
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 MB,少於 Java 線上提交的多數元素的 9.23%。

就是這樣!如果還有什麼要討論的,請隨時發表評論,如果我錯過了任何內容,請告訴我,以便我進行相應更新。

直到下一篇文章! :)

以上是Leetcode——頂尖訪談——。多數元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn