來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/majority-element/
注意,該題在LC中被標(biāo)注為easy,所以我們更多應(yīng)該關(guān)注的是文章中不斷優(yōu)化的思路和方法。很多時(shí)候面試考察的,就是與面試官一起做題并把時(shí)間復(fù)雜度和空間復(fù)雜度壓榨到極致的過(guò)程中你所表現(xiàn)出來(lái)的能力。
你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺(jué)設(shè)計(jì)專才。
給定一個(gè)大小為 n 的數(shù)組,找到其中的多數(shù)元素。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大于 ?n/2?的元素。
你可以假設(shè)數(shù)組是非空的,并且給定的數(shù)組總是存在多數(shù)元素。
輸入:[3,2,3]
輸出:3
輸入:[2,2,1,1,1,2,2]
輸出:2
很快啊,啪的一下我們想到,由于多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù) 大于 ?n/2? 的元素,那么將數(shù)組排序后,即便該元素是最小元素或是最大元素,其在數(shù)組中的覆蓋范圍也超過(guò)了數(shù)組中點(diǎn)(從左到右超過(guò)或是從右到左超過(guò))。于是得到算法:
1.將數(shù)組排序;
2.返回?cái)?shù)組中點(diǎn)元素nums[nums.size()/2].
1 class Solution { 2 public: 3 int majorityElement(vector<int>& nums) { 4 sort(nums.begin(), nums.end());//對(duì)數(shù)組進(jìn)行排序 5 return nums[nums.size()/2];//返回?cái)?shù)組中點(diǎn)元素 6 } 7 };