剑指offer 53

题目描述

统计一个数字在排序数组中出现的次数。

题解

使用二分搜索

public class Solution {
    public int GetNumberOfK(int [] array , int k)
        {
            return BinSearch(array,k+0.5)-BinSearch(array,k-0.5);
        }
        private int BinSearch(int [] array, double k)
        {
            int l = 0;
            int h = array.length-1;
            while(l<=h)
            {
                int mid = l+(h-l)/2;
                if(array[mid]mid+1;
                else if(array[mid]>k)
                    h = mid-1;


            }
            return l;
        }
}

python使用count就可以直接返回结果,并且还能直接提交。

你可能感兴趣的:(编码)