题解 | #数字在升序数组中出现的次数#
数字在升序数组中出现的次数
http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
java整数二分两个模板
1.将集合划分为[l,mid][mid + 1,r]
2.将集合划分为[l,mid - 1][mid,r]
public class Solution { public int GetNumberOfK(int [] array , int k) { if(array.length == 0) return 0; int l = 0, r = array.length - 1; while(l < r){ int mid = l + r >> 1; if(array[mid] >= k) r = mid; else l = mid + 1; } int p = l; if(array[l] != k) return 0; l = 0; r = array.length - 1; while(l < r){ int mid = l + r + 1 >> 1; if(array[mid] <= k) l = mid; else r = mid - 1; } return l - p + 1; } }