问:一个数组中,有一个数出现的次数大于数组长度的一半,求出这个数
#选择出出现次数最多的那个数字 #假定那个数的次数大于数组中的数目总和的一半以上 #思路: #那么我们可以认为这个数字的出现数字大于其他所有数字出现的次数总和 def selectMostNumber(numbers): currentA = numbers[0] numberCount = 0 for currentNumber in numbers: if currentNumber != currentA: numberCount -= 1 if numberCount == 0: currentA = currentNumber numberCount = 1 else: numberCount += 1 if numberCount > 0: print currentA if __name__ == "__main__": selectMostNumber([1,2,2,1,2,2,2,2,3,4,2,1,3,2,3,1])