为什么major1和major2能表示两个不同的数
nums =major1 = major2 = nums
count1 = count2 = 0
# 对抗阶段
for each in nums:
if major1 == each:
count1 += 1
continue
if major2 == each:
count2 += 1
continue
if count1 == 0:
major1 = each
count1 = 1
continue
if count2 == 0:
major2 = each
count2 = 1
continue
count1 -= 1
count2 -= 1 这段代码使用了摩尔投票算法,通过对抗阶段找出出现次数最多的两个数字。major1和major2分别表示出现次数最多的两个数字,count1和count2分别表示major1和major2的出现次数。在对抗阶段,如果当前数字与major1相同,则count1加1;如果当前数字与major2相同,则count2加1。如果count1或count2为0,则将当前数字赋值给major1或major2。如果count1和count2都不为0,且当前数字与major1和major2都不相同,则将count1和count2分别减1。这样,major1和major2就能表示出现次数最多的两个不同的数字。
页:
[1]