5 条题解

  • 4
    @ 2024-12-19 11:15:54
    a=list(map(int,input().split()))
    key=int(input())
    n=len(a)
    l=0
    r=n//2
    cnt=0
    while l<=r:
        m=(l+r)>>1
        cnt+=1
        if a[m]==key:
            break
        elif a[m]>key:
            r=m-1
        else:
            l=m+1
    if a[m]==key:
        print("YES\n"+str(cnt))
    else:
        cnt+=1
        if a[-m]==key:
            print("YES\n"+str(cnt))
        else : print("NO")
    
    
    • 1
      @ 2024-12-19 11:38:06
      a = list(map(int, input().split()))
      key = int(input())
      n=len(a)
      i=0
      j=(n-1)//2
      cnt=0
      while i<=j:
          m=(i+j)//2
          cnt+=1
          if key==a[m]:
              break
          elif key<a[m]:
              j=m-1
          else:
              i=m+1
      if i<=j:
          print("YES")
          print(cnt)
      else:
          if j>=0 and key==a[n-1-j]:
              print("YES")
              print(cnt+1)
          else:
              print("NO")
      
      • 1
        @ 2024-12-19 8:55:28
        a = list(map(int, input().split()))
        key = int(input())
        l=0
        r=(len(a)-1)//2
        cnt=0
        while(l<=r) :
            m=(l+r)>>1
            cnt+=1
            if a[m]==key:
                break
            elif a[m]>key : r=m-1
            else:
                l=m+1
            
        if a[m]==key:print("YES");print(cnt)
        else:
            if a[-l]==key:
                print("YES");print(cnt+1)
            else : print("NO")
        
        • 0
          @ 2024-12-19 11:37:06
          a=list(map(int, input().split()))
          key=int(input())
          cnt=0;i=0;j=(len(a)-1+i)//2
          while i<=j:
              cnt+=1;m=(i+j)//2
              if key==a[m]:break
              elif key<a[m]:j=m-1
              else:i=m+1
          if i<=j:print('YES');print(cnt)
          else:
              if key==a[-1-j]:print('YES');print(cnt+1)
              else:print('NO')
          
          • -4
            @ 2024-12-19 11:37:37
            a = list(map(int, input().split()))
            key = int(input())
            cnt=0
            n=len(a)
            i=0;j=(len(a)-1)//2
            while i<=j:
                m=(i+j)//2
                cnt=cnt+1
                if a[m]==key:
                    break
                elif a[m]<key:
                    i=m+1
                else:
                    j=m-1
            if i<=j:
                print("YES")
                print(cnt)
            else:
                if a[-i]==key:
                    cnt=cnt+1
                    print("YES")
                    print(cnt)
                else:
                    print("NO")
            

            😄

            • 1

            信息

            ID
            804
            时间
            1000ms
            内存
            256MiB
            难度
            8
            标签
            递交数
            1144
            已通过
            216
            上传者