1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 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; return findLeft(array, index - 1, k) + findRight(array, index + 1, k) + 1; }
private int findLeft(int[] arr, int i, int aim) { int res = 0; for (; i >= 0 && arr[i] == aim; i--) { res++; } return res; }
private int findRight(int[] arr, int i, int aim) { int res = 0; for (; i < arr.length && arr[i] == aim; i++) { res++; } return res; } }
|