World Languages, asked by Arshid3960, 10 months ago

Print a single integer denoting the index of the last occurrence of integer M in the array if it exists,otherwise print - 1Constraints1<=N<=1051<=A[i]<=101<=M<=10​

Answers

Answered by Itzkrushika156
0

ANSWER :

Given an array of length N and an integer x, you need to find and return the last index of integer x present in the array. Return -1 if it is not present in the array. Last index means - if x is present multiple times in the array, return the index at which x comes last in the array.

You should start traversing your array from 0, not from (N - 1). Do this recursively. Indexing in the array starts from 0.

Input Format:

Line 1 : An Integer N i.e. size of array

Line 2 : N integers which are elements of the array, separated by spaces

Line 3 : Integer x

Output Format: last index or -1

Constraints: 1 <= N <= 10^3

Example

Input:

4

9 8 10 8

8

Output:

3

Description:

Here, we have to find the last occurrence of x. Therefore, in this example the last occurrence of 8 happens in index 3, and hence the output is 3.

Algorithm:

Step 1: To solve this using recursion, make a recursion function with inputs, and a variable currIndex to traverse the input array.

Step2: Base Case:- If currIndex == size of the input array, return -1, i.e element not found.

Step3: Take input of next recursion call ,withcurrIndex incremented by 1 , in a variable ‘index’.

Step 4:

If(index == -1 && input[currIndex] == x)

Return currIndex

Else

Return index;

C++ Source Code/Function:

#include<bits/stdc++.h>

using namespace std;

int lastIndex(int input[], int size, int x, int currIndex){

if(currIndex== size){

return -1;

}

int index = lastIndex(input,size,x,currIndex+1);

if(index == -1 && input[currIndex] == x){

return currIndex;

}

else{

return index;

}

}

int main(){

int input[] = {9,8,10,8};

int x = 8;

int size = 4;

cout<<lastIndex(input,size,x,0);

return 0;

Similar questions