77,486 views
27 votes
27 votes
Given an array of n distinct integers sorted in ascending order, write a function that returns a Fixed Point in the array, if there is any Fixed Point present in array, else returns -1. Fixed Point in an array is an index i such that arr[i] is equal to i. Note that integers in array can be negative. Examples: #include using namespace std; void removeDivByFive(int *arr,int& size) { int index=0; for(int i=0;i

User Myk
by
2.8k points

1 Answer

7 votes
7 votes

Answer:

The function is as follows:

int returnsFixed(int arr [],int n){

int retVal = -1;

for(int i = 0; i<n;i++){

if(i == arr[i]){

retVal = i;

break;

}

}

return retVal;

}

Step-by-step explanation:

This defines the functionl it receives the array and the length of the array

int returnsFixed(int arr [],int n){

This initializes the return value to -1

int retVal = -1;

This iterates through the array

for(int i = 0; i<n;i++){

This checks if i equals arr[i]

if(i == arr[i]){

If yes, the return value (i.e. the fixed point) is set to i

retVal = i;

And the code is exited

break;

} This ends the if condition

} This ends the iteration

This returns the calculated fixed point

return retVal;

}

User Anthony Shull
by
2.6k points