publicintbinarySearch(int[] array,int target){int lo =0, hi = array.length -1;while(lo <= hi){int mid = lo +(hi - lo)/2;if(array[mid]> target){
hi = mid -1;}elseif(array[mid]< target){
lo = mid +1;}else// array[mid] == target{return mid;}}return-1;}
Leftmost Binary Search
publicintbinarySearch(int[] array,int target){int lo =0, hi = array.length;while(lo < hi){int mid = lo +(hi - lo)/2;if(array[mid]>= target){
hi = mid;}else// array[mid] < target{
lo = mid +1;}}return lo;}
Rightmost Binary Search
publicintbinarySearch(int[] array,int target){int lo =0, hi = array.length;while(lo < hi){int mid = lo +(hi - lo)/2;if(array[mid]<= target){
lo = mid;}else// array[mid] < target{
hi = mid -1;}}return lo -1;}
Basic BinarySearchpublic int binarySearch(int[] array, int target){ int lo = 0, hi = array.length; while (lo <= hi) { int mid = lo + (hi - lo) / 2; if (array[mid] > target) { hi = mid - 1; } else if (array[mid] < target) { .