一.题目
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1::
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
二.代码(C)
int majorityElement(int* nums, int numsSize)
{
int mode;
int count = 0;
int i;
for (i=0;i<numsSize;i++)
{
if(!count)
{
mode = nums[i];
count++;
}
else
{
if (nums[i]==mode)
count++;
else
count--;
}
}
return mode;
}
三.提交记录


四.备注
巧妙地运用了题干信息,众数出现次数大于2/n,将众数取1,其他数取-1,数组中所有数据的累加和应大于0,。
本文介绍了LeetCode上编号为169的题目“求众数”的解决方案,使用C语言实现。该题要求从给定数组中找出出现次数超过n/2的众数元素,通过巧妙的计数策略,实现了高效的查找。
&spm=1001.2101.3001.5002&articleId=99827299&d=1&t=3&u=4346b9b4ea9a48469a9dcba3f9d880dc)
1037

被折叠的 条评论
为什么被折叠?



