主元素

来源:互联网 发布:知乎日报rss 编辑:程序博客网 时间:2024/05/18 03:09
/*
问题描述:给定一个整形数组,找出主元素,它在数组中出现次数严格大于数组个数的二分之一
来源:LintCode
作者:syt

日期:2017-7-24

思路:先排序,设置两个下标用于统计每个数字的个数,最后比较是否为主元素

*/

#include <iostream>#include <vector>#include <algorithm>using namespace std;/*** @param nums: A list of integers* @return: The majority number*/int majorityNumber(vector<int> nums) {// write your code hereint count = 1;sort(nums.begin(), nums.end());int i = 0, j = 1;for (; j < nums.size(); j++){if (nums[i] == nums[j]){count++;}else{if (count > nums.size() / 2){break;}i = j;count = 1;}}return nums[i];}


原创粉丝点击