剑指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-18 20:04
泉州职业技术大学 算法工程师
专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了
把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。
现在是学校不是92就扣分的,没必要放前面。
然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历 点赞 评论 收藏
分享