一维数组的众数怎么写
时间: 2024-04-15 13:20:57 浏览: 135
mode.m:查找数组的众数。-matlab开发
给定一个大小为 n 的一维数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。可以使用摩尔投票法来解决这个问题,具体思路如下:
1. 初始化一个候选众数 candidate 和一个计数器 count,将 candidate 设为数组的第一个元素,count 设为 1。
2. 遍历数组,如果当前元素与 candidate 相同,则将 count 加 1,否则将 count 减 1。
3. 如果 count 减为 0,则将 candidate 设为当前元素,并将 count 设为 1。
4. 遍历完数组后,candidate 即为众数。
以下是 Python 代码实现:
```python
def majorityElement(nums):
candidate = nums[0]
count = 1
for i in range(1, len(nums)):
if nums[i] == candidate:
count += 1
else:
count -= 1
if count == 0:
candidate = nums[i]
count = 1
return candidate
```
阅读全文