0
0
DSA C++programming~10 mins

First and Last Occurrence of Element in DSA C++ - Execution Trace

Choose your learning style9 modes available
Concept Flow - First and Last Occurrence of Element
Start
Initialize first = -1, last = -1
Traverse array from i=0 to n-1
Check if array[i
If first == -1, set first = i
Set last = i
Continue traversal
End traversal
Return first and last
We scan the array once, updating first and last positions when we find the target.
Execution Sample
DSA C++
int first = -1, last = -1;
for (int i = 0; i < n; i++) {
  if (arr[i] == target) {
    if (first == -1) first = i;
    last = i;
  }
}
This code finds the first and last positions of target in the array.
Execution Table
StepIndex iarr[i]Condition arr[i]==targetfirstlastActionVisual State
105No-1-1No change[5, 3, 7, 3, 9]
213Yes-1-1first=1, last=1[5, 3, 7, 3, 9]
327No11No change[5, 3, 7, 3, 9]
433Yes11last=3[5, 3, 7, 3, 9]
549No13No change[5, 3, 7, 3, 9]
6End--13Traversal ends[5, 3, 7, 3, 9]
💡 Reached end of array, traversal stops.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5Final
first-1-111111
last-1-111333
i-01234-
Key Moments - 3 Insights
Why do we check if first == -1 before setting it?
Because first should store the earliest index where target appears. We only set it once, at the first occurrence (see Step 2 in execution_table).
Why do we update last every time we find the target?
Because last should always point to the most recent occurrence of target. This updates at every match (see Steps 2 and 4).
What if the target is not in the array at all?
Then first and last remain -1, indicating no occurrence found (see Step 1 and final values).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'first' after Step 2?
A-1
B1
C0
D3
💡 Hint
Check the 'first' column in row for Step 2 in execution_table.
At which step does 'last' get updated to 3?
AStep 4
BStep 5
CStep 3
DStep 2
💡 Hint
Look at the 'last' column and 'Action' in execution_table rows.
If the target was 7 instead of 3, what would be the final value of 'first'?
A1
B-1
C2
D3
💡 Hint
Check where 7 appears in the array and how 'first' is set in execution_table.
Concept Snapshot
Find first and last occurrence of target in array:
- Initialize first and last to -1
- Traverse array once
- If arr[i] == target:
  - If first == -1, set first = i
  - Set last = i
- After traversal, first and last hold positions or -1 if not found
Full Transcript
This concept finds the first and last positions of a target element in an array by scanning it once. We start with first and last set to -1, meaning not found. As we move through the array, when we find the target, if first is still -1, we set it to the current index. We always update last to the current index when we find the target. After the loop ends, first and last tell us where the target first and last appeared. If the target is not found, both remain -1.