题解 | #数字在升序数组中出现的次数#

数字在升序数组中出现的次数

http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2

class Solution:
    def GetNumberOfK(self , data: List[int], k: int) -> int:
        # write code here
        first = self.GetFirstK(data, k)
        last = self.GetLastK(data, k)
        
        return last - first 
    # 找到左边界
    def GetFirstK(self, data, k):
        left = 0
        right = len(data)
        while left < right:
            mid = (left + right) // 2
            if data[mid] >= k:
                right = mid
            else:
                left = mid + 1
        return left
    #找到右边界
    def GetLastK(self, data, k):
        left = 0
        right = len(data)
        while left < right:
            mid = (left + right) // 2
            if data[mid] > k:
                right = mid
            else:
                left = mid + 1
        return left
全部评论

相关推荐

ros275229:社团删了吧,cf因该1200才勉强入门吧,也删了,你可以写算法刷了多少道,都比这个好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务