假设我们有一个称为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