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

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

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

递归二分思路

class Solution:
    result = 0
    def GetNumberOfK(self , data: List[int], k: int) -> int:
        m = int(len(data)/2)
        if len(data) == 0:
            return self.result  # 递归结束条件,递归结束时返回 result
        elif data[m] == k:
            # 中间值等于k,则递归传入剔除中间元素的列表
            self.result += 1  
            return self.GetNumberOfK(data[:m]+data[m+1:],k)
        elif data[m] < k:
            # 中间值小于k,则递归右半部分
            return self.GetNumberOfK(data[m+1:],k)
        else:
            # 中间值大于k,则递归左半部分
            return self.GetNumberOfK(data[:m],k)         
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:23
转人工😡
门口唉提是地铁杀:五次握手了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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