I have written the code, but one test case is failing. Can you help to identify which case is that?? I have checked for -ve numbers also.
import java.util.Scanner;
public class FindLastElement {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String sizeofArray = sc.nextLine();
String elementsofArray = sc.nextLine();
String elementToSearch = sc.nextLine();
int[] array = new int[Integer.parseInt(sizeofArray)];
String[] result = elementsofArray.split("\\s");
for (int x=0; x<result.length; x++)
array[x] = Integer.parseInt(result[x]);
System.out.println(findLastElement(array,Integer.parseInt(elementToSearch),0));
}
public static int findLastElement(int[] array, int numberToSearch, int selectedIndex){
int result = -1;
if(selectedIndex == array.length-1 ){
if ( array[selectedIndex] == numberToSearch )
return selectedIndex;
else
return result;
}
for( int x=selectedIndex; x<array.length-1; ++x){
if( array[selectedIndex] == numberToSearch)
result = selectedIndex;
int currentresult = findLastElement(array,numberToSearch,x+1);
if( currentresult != -1 )
{
result = currentresult;
}
}
return result;
}
}