目录
题目来源
169. 多数元素 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/majority-element/
函数介绍
给定一个大小为
n
的数组nums
,返回其中的多数元素。多数元素是指在数组中出现次数 大于
⌊ n/2 ⌋
的元素。
问题示例
输入:nums = [3,2,3] 输出:3
输入:nums = [2,2,1,1,1,2,2] 输出:2
说明
- 你可以假设数组是非空的,并且给定的数组总是存在多数元素。
n == nums.length
1 <= n <= 5 * 104
-109 <= nums[i] <= 109
函数实现
int majorityElement(int* nums, int numsSize)
{
if (numsSize == 0) return 0;
int count = 1;//计数器
int value = nums[0];
for (int i = 1; i < numsSize; i++)
{
if (value ==nums[i] ) count++;
else
{
count--;
if (count == 0)
{
value = nums[i];
count = 1;
}
}
}
return value;
}
用法示例
#include<stdio.h>
int majorityElement(int* nums, int numsSize)
{
if (numsSize == 0) return 0;
int count = 1;
int value = nums[0];
for (int i = 1; i < numsSize; i++)
{
if (value == nums[i]) count++;
else
{
count--;
if (count == 0)
{
value = nums[i];
count = 1;
}
}
}
return value;
}
int main()
{
int nums[] = { 3, 2, 3 };
printf("%d\n", majorityElement(nums, 3));
return 0;
}