给定一个n个整型元素的数组a,其中有一个元素出现次数超过n / 2,求这个元素

思路:

方法一:

排序,取中间的值必为超过n/2的那个值

方法二:

def getAppearMoreThanHalf(arr):
    curVal=arr[0]
    count=1
    for i in range(1,len(arr)):
        if count==0:
            curVal=arr[i]
            count=1
            continue
        if arr[i]==curVal:
            count+=1
        else:
            count-=1 
    return curVal        
    
a=[3,5,7,7,7]
print(getAppearMoreThanHalf(a))

标签: curval、arr、getappearmorethanhalf、count、必为、面试
  • 回复
隐藏