剑指offer39 :数组中出现次数超过一半的数字
解法一: 使用map
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
int len = numbers.size();
if(len<2)
return numbers[0];
map<int,int> mp;
for(int i=0;i<len;i++)
{
mp[numbers[i]]++;
if(mp[numbers[i]]>(len/2))
return numbers[i];
}
return 0;
}
};
解法二:暴力法
int len = numbers.size();
sort(numbers.begin(),numbers.end());
int flag=1;
if(len<2)
return numbers[0];
for(int i =0;i<len-1;i++)
{
if(numbers[i]==numbers[i+1])
{ flag++;
if(flag>(len/2))
{
return numbers[i];
break;
}
}
else
flag=1; }
return 0;
}
解法一: 使用map
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
int len = numbers.size();
if(len<2)
return numbers[0];
map<int,int> mp;
for(int i=0;i<len;i++)
{
mp[numbers[i]]++;
if(mp[numbers[i]]>(len/2))
return numbers[i];
}
return 0;
}
};
解法二:暴力法
int len = numbers.size();
sort(numbers.begin(),numbers.end());
int flag=1;
if(len<2)
return numbers[0];
for(int i =0;i<len-1;i++)
{
if(numbers[i]==numbers[i+1])
{ flag++;
if(flag>(len/2))
{
return numbers[i];
break;
}
}
else
flag=1; }
return 0;
}
2020-04-23
在牛客打卡14天,今天学习:刷题 7 道/代码提交 7 次
全部评论
相关推荐
11-14 15:03
西安电子科技大学 C++ 点赞 评论 收藏
分享