首页 > 学院 > 开发设计 > 正文

169. Majority Element

2019-11-06 07:31:08
字体:
来源:转载
供稿:网友

题目: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.

解题思路:用pair这个函数来记录数组中的数字,及这个数字在这个数组中出现的次数,这样只需要一个循环就可以了。最后再通过判断各个数字出现的频率,然后输出结果。findnums函数是用来找相应数据对应的下标。

解决方法:

class Solution {public:    int findnums(vector<pair<int,int> > temp,int k)    {        int size2 = temp.size();        for(int i = 0;i<size2;i++)        {            if(k = temp[i].first)            {                return i;            }                            }        return -1;    }    int majorityElement(vector<int>& nums) {        vector<pair<int,int> > result;        int size = nums.size();        for(int i = 0; i<size;i++)        {            int n = findnums(result, nums[i]);                            if(n != -1)                {                    result[n].second++;                }                else                {                    pair<int,int> temp(nums[i],1);                    result.push_back(temp);                }                    }        int size2 = result.size();        int k = size/2;        for(int i = 0;i<size2;i++)        {            if(result[i].second > k)            return result[i].first;        }            }};


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表