[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
相关文章推荐
- leetcode解题之34. Search for a Range java 版(数字在排序数组中出现的次数)
- 【剑指offer-解题系列(38)】数字在排序数组中出现的次数
- Python:数字在排序数组中出现的次数
- 统计一个数字在排序数组(从小到大排序)中出现的次数。
- 【剑指Offer学习】【面试题38:数字在排序数组中出现的次数】
- 数字在排序数组中出现的次数
- 剑指offer-38 统计一个数字在排序数组中出现的次数
- 面试题38:数字在排序数组中出现的次数
- 剑指offer面试题38:数字在已排序数组中出现的次数
- 剑指offer系列源码-数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 剑指offer35--数字在数组排序中出现的次数
- 数字在排序数组中出现的次数
- [微软面试题] 在排序数组中,找出给定数字的出现次数
- 统计数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 【C语言】统计数字在排序数组中出现的次数
- [九度OnlineJudge][剑指Offer]题目1349:数字在排序数组中出现的次数
- 数字在排序数组中出现的次数