您的位置:首页 > 编程语言 > Python开发

[Python]数字在排序数组中出现的次数 解题思路

2018-03-16 11:58 225 查看

题目描述:

统计一个数字在排序数组中出现的次数

解法1:

思路:看到排序数组,首先想到的是二分法查找,先找到数字重复出现的左边位置,再找到右边位置,再相减即得到目标值

class Solution:
def GetNumberOfK(self, data, k):
left=0
right=len(data)-1
leftk=self.getleftK(data,k,left,right)
rightk=self.getrightK(data,k,left,right)
return rightk-leftk+1
def getleftK(self,data,k,left,right):
while left<=right:
middle=(left+right)//2
if data[middle]<k:
left=middle+1
else:
right=middle-1
return left
def getrightK(self,data,k,left,right):
while left<=right:
middle=(left+right)//2
if data[middle]<=k:
left=middle+1
else:
right=middle-1
return right


解法2:

class Solution:
def GetNumberOfK(self, data, k):
return data.count(k)


解法3:

class Solution:
def GetNumberOfK(self, data, k):
num=0
for i in data:
if i==k:
num+=1
return num
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息