原文地址:https://www.jianshu.com/p/a17f4eacb048
时间限制:1秒 空间限制:32768K
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
我的代码
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
int s=numbers.size();
if(s<1)
return 0;
int hs=s/2;
sort(numbers.begin(),numbers.end());
for(int i=0;i+hs<s;i++)
if(numbers[i]==numbers[i+hs])
return numbers[i];
return 0;
}
};
运行时间:3ms
占用内存:484k