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

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

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

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

   //思路,因为是排序数组,所以指定数字的出现肯定是连续的。后面可以不用再遍历。 
    public int GetNumberOfK(int [] array , int k) {
       int count=0;
        for(int a:array){
            if(a==k){
                ++count;
            }else if(count>0){
                break;
            }

        }
        return count;
    }

看了下一叶浮尘的回答。还是大佬的叶姐的解法牛逼。

import java.util.Arrays;

public class Solution {
    //思路,二叉搜索。 
    public int GetNumberOfK(int [] array , int k) {
        int index=Arrays.binarySearch(array,k);
        if(index<0){
            return 0;
        }
        int count=1;
        for(int i=index+1;i<array.length&&array[i]==k;i++){
            count++;
        }
        for(int j=index-1;j>=0&&array[j]==k;j--){
            count++;
        }
        return count;
    }
}
全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务