problem no 22: Search in a Rotated Array
QUESTION:
Given a sorted and rotated array A of N distinct elements which is rotated at some point, and given an element K. The task is to find the index of the given element K in the array A.
Input:
The first line of the input contains an integer T,
denoting the total number of test cases. Then T test cases follow. Each
test case consists of three lines. First line of each test case contains
an integer N denoting the size of the given array.
Second line of each test case contains N space separated integers
denoting the elements of the array A. Third line of each test case
contains an integer K denoting the element to be searched in the array.
Output:
Corresponding to each test case, output the index of the element found in the array. If element is not present, then output -1.
Constraints:
1 ≤ T ≤ 100
1 ≤ N ≤ 107
0 ≤ Ai ≤ 108
1 ≤ K ≤ 108
Example:
Input:
3
9
5 6 7 8 9 10 1 2 3
10
3
3 1 2
1
4
3 5 1 2
6
Output:
5
1
-1
Explanation:
Testcase 1: 10 is found at index 5.
ANSWER:
#include <iostream>
using namespace std;
int found(int arr[],int n,int k)
{
int elementfound=0;
int index;
for(int i=0;i<n;i++)
{
if(arr[i]==k)
{
elementfound=1;
index=i;
}
}
if(elementfound==0)
{
return -1;
}
else
{
return index;
}
}
int main() {
int t;cin>>t;
while(t--)
{
int n;cin>>n;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
int k;cin>>k;
int index=found(arr,n,k);
cout<<index<<"\n";
}
return 0;
}
Comments
Post a Comment