题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
http://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
# -*- coding:utf-8 -*-
class Solution:
def MoreThanHalfNum_Solution(self, numbers):
# write code here
if len(numbers) < 1:
return 0
cnt = 1
curIdx = 0
retNum = numbers[curIdx]
for idx, num in enumerate(numbers):
if idx == 0:
continue
if cnt == 0:
retNum = num
cnt = 1
continue
if num == retNum:
cnt += 1
else:
cnt -= 1
return retNum
class Solution:
def MoreThanHalfNum_Solution(self, numbers):
# write code here
if len(numbers) < 1:
return 0
cnt = 1
curIdx = 0
retNum = numbers[curIdx]
for idx, num in enumerate(numbers):
if idx == 0:
continue
if cnt == 0:
retNum = num
cnt = 1
continue
if num == retNum:
cnt += 1
else:
cnt -= 1
return retNum