169. 多数元素 - 力扣(LeetCode)
【LeetCode 每日一题】169. 多数元素 | 手写图解版思路 + 代码讲解_哔哩哔哩_bilibili
c为计数器,代表当前候选人的票数
v为当前候选人
x为遍历的各候选人得票
分三种情况:
第一种,c==0,前面的候选人票数相互抵消,此时需要添加新的候选人
第二种,c!=0且x==v,当前候选人再得一票,c++
第三章,c!=0且x!=v,当前候选人没得票其它候选人得票,作为抵消,c--
func majorityElement(nums []int) int {
v,c:=0,0
for _,x:=range nums{
if c==0{
v=x
c=1
}else if x==v{
c++
}else{
c--
}
}
return v
}