数字在排序数组中出现的次数--python

夙愿已清 提交于 2020-01-21 09:33:23
#使用二分查找的思想
list = [1,2,3,3,3,3,4,5,6]
def GetNumberOfK(list,k):
    if len(list) == 0:
        return 0
    mid = len(list)//2
    if list[mid] == k:
        start,end = mid,mid
        for i in range(mid,-1,-1):
            if list[i] == k:
                start -= 1
        for i in range(mid+1,len(list)):
            if list[i] == k:
                end += 1
        return end - start
    elif list[mid] > k:
        return GetNumberOfK(list[:mid],k)
    else:
        return GetNumberOfK(list[mid+1:],k)


print(GetNumberOfK(list,4))
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!