To prove safety offer - digit number that appears in the array

Title Description

Count the number of times a number that appears in the sort array.

Thinking

Dichotomy, respectively, and to find the supremum infimum on digital

# -*- coding:utf-8 -*-
class Solution:
    def GetNumberOfK(self, data, k):
        if not data:
            return 0
        
        i = 0
        j = len(data)-1
        
        #找下确界
        while i<j:
            mid = int((i+j+1)//2)
            if data[mid]<k:
                i = mid
            else:  # >=k
                j = mid-1
        if data[i]==k:
            left = i-1
        else:
            left = i
        j = len(data)-1
        #上确界
        while i<j:
            mid = int((i+j)//2)
            if data[mid] <=k:
                i = mid+1
            else: #>k
                j = mid
        if data[j]==k:
            j+=1
        if j-left-1<0:
            return 0
        return j-left-1

 

Published 82 original articles · won praise 2 · Views 4355

Guess you like

Origin blog.csdn.net/qq_22498427/article/details/104815793