【剑指offer】Q38:数字在数组中出现的次数
生活随笔
收集整理的這篇文章主要介紹了
【剑指offer】Q38:数字在数组中出现的次数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
與折半查找是同一個模式,不同的是,在這里不在查找某個確定的值,而是查找確定值所在的上下邊界。
def getBounder(data, k, start, end, low_bound = False):if end < start : return -1while start <= end:mid = ( start + end ) >> 1if data[ mid ] > k:end = mid - 1elif data[ mid ] < k:start = mid + 1else:if low_bound == True:if mid == 0 or data[ mid - 1 ] != k:return midelse:end = mid - 1else:if mid == end or data[ mid + 1 ] != k:return midelse:start = mid + 1def getNumberOfk(data, k):if len(data) <= 1: return len(data)low_bound = getBounder( data, k, 0, len( data ) - 1, low_bound = True )up_bound = getBounder( data, k, 0, len( data ) - 1, low_bound = False)return up_bound - low_bound + 1
轉載于:https://www.cnblogs.com/mengfanrong/p/3886501.html
總結
以上是生活随笔為你收集整理的【剑指offer】Q38:数字在数组中出现的次数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014多校第四场1006 || HD
- 下一篇: hadoop2.4.1+hbase0.9