诶?
2024-06-10 15:11:26
发布于:浙江
1阅读
0回复
0点赞
#include <iostream>
using namespace std;
int findMajority(int arr[], int n) {
int candidate = arr[0];
int count = 1;
for (int i = 1; i < n; ++i) {
if (arr[i] == candidate) {
count++;
} else {
if (count > 0) {
count--;
} else {
candidate = arr[i];
count = 1;
}
}
}
// 验证找到的候选数是否真的是多数元素
for (int i = 0, count = 0; i < n; ++i) {
if (arr[i] == candidate) {
count++;
}
if (count > n / 2) {
return candidate;
}
}
// 如果没有找到多数元素,返回-1(在这种情况下不需要)
return -1;
}
int main() {
int n;
cin >> n;
int array[n];
for (int i = 0; i < n; ++i) {
cin >> array[i];
}
int majorityElement = findMajority(array, n);
cout << majorityElement << endl;
return 0;
}
这里空空如也
有帮助,赞一个