Geeksforgeeks

Timer is Running

Associated Course(s):
Fundamentals of Programming with C

Given an unsorted array **Arr[]** of **N** integers and a **Key** which is present in this array. You need to write a program to find the **start index**( index where the element is first found from left in the array ) and **end index**( index where the element is first found from right in the array ).

**Example 1:**

**Input:**
N = 6
arr[] = { 1, 2, 3, 4, 5, 5 }
Key = 5
**Output:** 4 5
**Explanation**:
5 appears first time at index 4 and
appears last time at index 5.
**(0 based indexing)**

**Example 2:**

**Input:
**N=6
arr[] = { 6, 5, 4, 3, 1, 2 }
Key = 4
**Output:** 2 2

**Your Task:**

Since, this is a function problem. You don't need to take any input, as it is already accomplished by the driver code. You just need to complete the function **findIndex()** that takes** array a, integer N and integer key **as parameters** **and returns an array of length 2 in which at first index contains the value of start index and at the second index contains the value of end index. If the key does not exist in the array then return -1 for both start and end index in this case.

**Expected Time Complexity:** O(N)

**Expected Auxiliary Space:** O(1).

**Constraints:**

1 ≤ N ≤ 10^{6}

Author: harsh.agarwal0

If you have purchased any course from GeeksforGeeks then please ask your doubt on course discussion forum. You will get quick replies from GFG Moderators there.

jainshubham52535 | 529 |

Pathak1899 | 436 |

yashdip123 | 380 |

kirtidee18 | 377 |

jots62 | 351 |

kirtidee18 | 1057 |

ykaushik | 752 |

aggarwalvatsal5 | 741 |

harbilassingh | 576 |

pmr_3689 | 570 |

blackshadows | 5456 |

Ibrahim Nash | 5450 |

akhayrutdinov | 5111 |

mb1973 | 4976 |

Quandray | 4827 |

Login to report an issue on this page.