這是一個簡單的問題,描述如下:
給定一個大小為 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中文網其他相關文章!