在数组中找出出现次数大于一半的数字

输入描述:

nums = [2,1,5,2,2,3,2]

输出描述:

2

思路
利用阵地攻守法解决,首先让第一个元素占领阵地,然后让剩余元素轮流进攻,当两个元素相同时,计数器加一;元素不同时,同归于尽 计数器减一 让下一个元素占守阵地
代码实现

def moreovernums(nums):
    master = nums[0]
    count = 1
    for i in range(1,len(nums)):
        if count == 0:
            master = nums[i]
            count = 1
        elif nums[i] == master:
            count += 1
        else:
            count -= 1
    return master
全部评论

相关推荐

06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务