Solution Review: Search First Occurrence of a Number
This review provides a detailed analysis of finding the first occurrence of the given number in an array.
We'll cover the following
Solution #1: Iterative Method
def firstIndex(arr, testVariable, currentIndex): # returns the first occurrence of testVariablewhile currentIndex < len(arr) : # Iterate over the arrayif arr[currentIndex] == testVariable : # Return the current index if testVariable foundreturn currentIndexcurrentIndex += 1# Driver Codearr = [9, 8, 1, 8, 1, 7]testVariable = 1currentIndex = 0print(firstIndex(arr, testVariable, currentIndex))
Explanation
To find the first occurrence of testVariable
we iterate over the entire array and return the currentIndex
when testVariable
is found. Let’s look at an illustration:
Solution #2: Recursive Method
def firstIndex(arr, testVariable, currentIndex) : # returns the first occurrence of testVariable# Base Case1if len(arr) == currentIndex :return -1;# Base Case2if arr[currentIndex] == testVariable :return currentIndex# Recursive Casereturn firstIndex(arr, testVariable, currentIndex + 1)# Driver Codearr = [9, 8, 1, 8, 1, 7]testVariable = 1currentIndex = 0print(firstIndex(arr, testVariable, currentIndex))
Explanation
In the iterative method, we were reducing the length of the array in each iteration.
We will follow the same method: we will decrease the length of the array each time and pass it to another execution instance of the same function. This will be our recursive case.
For the base case, we will have two conditions:
- When the length of the array is equal to the
currentIndex
. This would mean that the entire array has been recursively traversed and still thetestVariable
has not been found. In this case, we return .
if len(arr) == currentIndex :
return -1;
- When
testVariable
is found at thecurrentIndex
. In this case, we return thecurrentIndex
.
if arr[currentIndex] == testVariable :
return currentIndex
The illustration below describes the solution in detail.
Let’s try another challenge in the next lesson.