0
点赞
收藏
分享

微信扫一扫

789. 数的范围

胡桑_b06e 2022-02-21 阅读 71

Powered by:NEFU AB-IN

Link

文章目录

789. 数的范围

  • 题意

  • 思路

    整数二分即可,如果二分出的值和原数不相等,就说明没找到

  • 代码

    '''
    Author: NEFU AB-IN
    Date: 2022-02-19 12:03:04
    FilePath: \ACM\Acwing\789.py
    LastEditTime: 2022-02-19 21:06:19
    '''
    
    from collections import Counter
    
    a = []
    
    
    def findl(x):
        l = 0
        r = len(a) - 1
        while l < r:
            mid = l + r >> 1
            if a[mid] >= x:
                r = mid
            else:
                l = mid + 1
        return r
    
    
    def findr(x):
        l = 0
        r = len(a) - 1
        while l < r:
            mid = l + r + 1 >> 1
            if a[mid] <= x:
                l = mid
            else:
                r = mid - 1
        return r
    
    
    if __name__ == "__main__":
        n, q = map(int, input().split())
        a = list(map(int, input().split()))
        for i in range(q):
            x = int(input())
            L = findl(x)
            R = findr(x)
            if a[L] != x or a[R] != x:
                print(-1, -1)
            else:
                print(L, R)
    
举报

相关推荐

0 条评论