题目描述
统计一个数字在排序数组中出现的次数。
暴力求解
# -*- coding:utf-8 -*-
class Solution:
def GetNumberOfK(self, data, k):
# write code here
count = 0
for i in data:
if i == k:
count += 1
return count
二分法
# -*- coding:utf-8 -*-
class Solution:
def GetNumberOfK(self, data, k):
# write code here
if not data:
return 0
count = 0
left = 0
right = len(data) -1
while data[left] < data[right]:
if data[left] != k:
left += 1
if data[right] != k:
right -= 1
if data[left] != k or data[right] != k:
return count
count = right - left + 1
return count