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

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

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

思想

二分,但是因为这道题的特殊性,需要注意到左右两个边界的判断,这个判断的过程是在data[mid] == k的时候进行的,这里设计两个函数分别对左边界和右边界进行判断。

复习:

def getLeftIndex(l, r, k):
    while l <= r:
        mid = (l + r) // 2
        if data[mid] < k:
            l = mid + 1
        elif data[mid] > k:
            r = mid - 1
        else:
          # 这里判断是否还能够左移,判断是否到达左边界,否则继续移动
          if mid > 0 and data[mid - 1] == k:
              r = mid -1
          else:
              return mid
    return -1
 
全部评论

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
04-21 11:22
已编辑
中华女子学院 UE4
耐心学习_佩可officical:直接举报他,佬,违反劳动法我记得boss会下架
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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