题目: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.
1 int majorityElement(vector<int> &num) 2 { 3 map<int, int> m; 4 int n = num.size() / 2; 5 for (vector<int>::iterator it = num.begin(); it != num.end(); it++) 6 { 7 auto ret = m.insert(make_pair(*it, 1)); //对于不包含重复关键字的容器map,insert操作返回一个pair 8 if (!ret.second) //pair的firs成员是一个迭代器,指向具有给定关键字的元素, 9 ++ret.first->second;//second成员是一个bool值,指出元素的插入成功还是已经存在于容器中,如果已存在,则返回bool为false 10 11 } 12 for (map<int, int>::iterator it = m.begin(); it != m.end(); it++) 13 { 14 if (it->second > n) 15 return it->first; 16 } 17 }
时间: 2024-12-20 05:21:17