My code is failing second test case. Can anyone tell me why?
My code is:
import java.util.*;
public class Main {
static Scanner scn = new Scanner(System.in);
public static void main(String args[]) {
int[] arr;
arr = take_input();
//System.out.println("What element do you want to search?");
int ele = scn.nextInt();
int index=binary_search(arr,ele);
System.out.println(index);
}
public static int[] take_input() {
// System.out.println("What size array do you want?");
int n = scn.nextInt();
int[] arr = new int[n];
for (int i = 0; i < arr.length; i++) {
// System.out.println("Enter value:");
arr[i] = scn.nextInt();
}
return arr;
}
public static int binary_search(int[] arr,int num) {
int index=-1,low=0,high=arr.length-1;
int mid;
//System.out.println(mid);
while(low<=high) {
mid=(low+high)/2;
if(arr[mid]<num) {
low=mid+1;
}
else if(arr[mid]>num) {
high=mid-1;
}
else if(arr[mid]==num) {
return mid;
}
}
return index;
}
}