国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Majority Element

2019-11-06 07:24:31
字體:
來源:轉載
供稿:網友

Leetcode-Algorithm-Divide and Conquer-169

題目:Given an array of size n, find the majority element. The majority element is the element that appears more than ? n/2 ? times. You may assume that the array is non-empty and the majority element always exist in the array. (給定一個大小為n的數組,找到數組元素中的絕對眾數,絕對眾數也就是出現次數大于等于n/2次的元素。–假定數組非空且絕對眾數必定存在。)

題解:

方法1:(運用c++中map容器的特性) 在c++中,map容器能夠存儲鍵值對。因此,我們可以把元素看成鍵(key),把每個元素的數目看成值(value),由于map容器中key不能重復,因此對于重復元素,我們可以用value進行計數。最后看哪個元素的計數大于n/2。

代碼:

int majorityElement(vector<int>& nums) { if (nums.size() == 0) return -1; map<int, int> count; for (vector<int>::size_type ix = 0; ix < nums.size(); ++ix) if (++count[nums[ix]] > nums.size()/2) return nums[ix]; return -1;}

方法2:(運用排序以及絕對眾數的特征) 由于絕對眾數的個數大于數組大小的一半,因此,當數組排序后,位于數組中央的元素必定是絕對眾數。

代碼:

int majorityElement(vector<int>& nums) { if (nums.size() == 0) return -1; sort(nums.begin(), nums.end()); return nums[nums.size()/2];}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 微博| 贵定县| 东宁县| 信丰县| 交口县| 宜城市| 阿坝县| 星座| 长丰县| 林周县| 溧水县| 南平市| 保靖县| 四川省| 城口县| 临泽县| 库尔勒市| 上饶县| 南丹县| 永登县| 沈阳市| 阆中市| 松阳县| 望都县| 桂阳县| 中山市| 冀州市| 綦江县| 宁远县| 珲春市| 若羌县| 台东市| 新河县| 托克逊县| 新丰县| 宣汉县| 崇文区| 清远市| 通城县| 韶关市| 太湖县|