在 Python 中查找多数元素

嘿,编码员!因此,在本教程中,我们将了解 Python 编程语言中的一个简单问题。这个问题很简单,但在很多工作面试中仍然会被问到。


了解多数元素问题

在程序中,用户需要输入一个有N个元素的数组A。然后,代码的目标是找到数组中的多数元素。 

大小为 N 的数组 A 中的多数元素是在数组中出现超过 N/2 次的元素。

程序将返回多数元素,或者如果没有找到/存在多数元素,则返回 -1。


在 Python 中实现多数元素查找器

在代码实现中,我们首先输入数组的大小,然后取出数组中用空格分隔的所有元素。

然后,我们将以字典的形式存储数组中每个元素的计数,其中完成了元素到元素计数的映射。

最后,我们将检查每个元素的计数 n/2,每当计数大于 n/2 时,我们就返回该数字,否则返回 -1。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 号
18
19
20
def check_majority(arr, N):
   map = {}
   for i in range(0, N):
      if arr[i] in map.keys():
         map[arr[i]] += 1
      else:
         map[arr[i]] = 1
   for key in map:
      if map[key] > (N / 2):
         return key
   return -1
 
 
arr = list(input("Enter elements of array:"))
size = len(arr)
ans = check_majority(arr, size)
if ans != -1:
   print("Majority Element is: ", ans)
else:
   print("No majority element in array")

样本输出

Enter elements of array:1111111212121
Majority Element is1

结论

我希望您能够清楚问题陈述和代码实现。是的,解决同一问题可以有多种方法。你能想到任何一个吗?

快乐学习!😇