在Python中查找获得热门多数票的候选人ID的程序
假设我们有一个名为nums的包含n个值的数字列表,其中每个数字表示对候选人的投票。我们必须找到具有大于底(n/2)票数的候选人的ID,如果没有多数票,则返回-1。
因此,如果输入类似于nums = [6, 6, 2, 2, 3, 3, 3, 3, 3],那么输出将是3。
为了解决这个问题,我们将按照以下步骤进行−
- l:= nums的大小
- 计数:包含每个单独数字及其出现次数的映射
- 对于计数中的每个数字i和出现次数j,完成以下操作
- 如果j>(l/2),那么
- 返回i
- 如果j>(l/2),那么
- 返回-1
以下是实现的示例,以便更好地理解−
例子
class Solution:
def solve(self, nums):
l = len(nums)
from collections import Counter
count = Counter(nums)
for i, j in count.items():
if j>(l // 2):
return i
return-1
ob = Solution()
nums = [6, 6, 2, 2, 3, 3, 3, 3, 3]
print(ob.solve(nums))
输入
[6, 6, 2, 2, 3, 3, 3, 3, 3]
输出
3