数字在升序数组中出现的次数-Java实现

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

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

一. 思路

数组是升序的,可以用二分查找。

二. 代码

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
       if (array == null || array.length == 0) return 0;

        int left = 0, right = array.length-1;
        int mid = 0, count = 0;
        while (left < right) {
            mid = (left+right) / 2;
            if (k < array[mid]) {
                right = mid - 1;
            } else if (k > array[mid]) {
                left = mid + 1;
            } else {
                break;
            }
        }

        for (int i = left; i <= right; i++) {
            if (array[i] == k) {
                count++;
            }
        }

        return count;
    }
}
全部评论

相关推荐

3 2 评论
分享
牛客网
牛客企业服务