【考研·数据结构】408真题 (2013年42题) 的两种解法】
【代码】【考研·数据结构】408真题 (2013年42题) 的两种解法】
·
2013 寻找主元素
暴力解法:
- 记录数组
- 用一个记录数组记录每个元素出现的次数,然后找出其中最多的次数与n/2作比较
- 枚举
- 用一个双重for循环去遍历比较
代码实现:
//记录数组
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int arr[100] = { 0 };
int arr1[100] = { 0 };
int num = 0;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
arr1[arr[i]]++;
}
int Max = -1;
for (int i = 0; i < 100; i++)
{
if (arr1[i] > Max)
{
Max = arr1[i];
num = i;
}
}
if (Max > n / 2)
cout << num;
else
cout << -1;
}
//枚举遍历
#include<iostream>
using namespace std;
int main()
{
int n;
int sum = 0;
int num = 0;
cin >> n;
int arr[100] = { 0 };
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
for (int p = 0; p < n; p++)
{
sum = 0;
for (int k = 0; k < n; k++)
{
if (arr[p] == arr[k])
{
sum++;
num = arr[p];
}
}
if (sum > n / 2)
{
cout << num;
return 0;
}
}
cout << -1;
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)