程序查找在Python中具有多数票的候选人ID

假设我们有一个称为num的数字列表,其中包含n个值,其中每个数字代表对候选人的投票。我们必须找到投票数大于下限(n / 2)的候选人ID,如果没有多数票,则返回-1。

因此,如果输入类似于nums = [6、6、2、2、3、3、3、3、3],那么输出将为3。

为了解决这个问题,我们将遵循以下步骤-

  • l:= nums的大小

  • count:=包含每个单独的数字及其出现的映射

  • 对于每个数字i和出现次数j,

    • 还给我

    • 如果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