What if you could instantly find where something appears first and last in a huge list without missing a beat?
Why First and Last Occurrence of Element in DSA C?
Imagine you have a long list of names written on paper, and you want to find where a particular name appears first and last. You start scanning from the top, marking every time you see that name. This takes a lot of time and you might miss some spots if you lose focus.
Manually scanning through a list is slow and tiring. You can easily forget where you saw the name first or last. If the list is very long, it becomes almost impossible to keep track without making mistakes.
Using a simple program to find the first and last occurrence of an element in a list saves time and avoids errors. The program quickly scans the list once and remembers the positions, so you get accurate results instantly.
int i; for(i = 0; i < n; i++) { if(arr[i] == x) { printf("Found at %d\n", i); } }
int first = -1, last = -1; for(int i = 0; i < n; i++) { if(arr[i] == x) { if(first == -1) first = i; last = i; } } printf("First: %d, Last: %d\n", first, last);
This lets you quickly find the exact start and end positions of any item in a list, enabling fast searches and data analysis.
In a library database, finding the first and last time a book was borrowed helps track its popularity over time.
Manually searching is slow and error-prone.
Programmatic search finds first and last positions efficiently.
This method helps in quick data lookup and analysis.
Practice
first occurrence of an element in an array mean?Solution
Step 1: Understand the meaning of first occurrence
The first occurrence means the earliest position where the element is found in the array, starting from index 0.Step 2: Compare options with definition
The index of the first time the element appears in the array matches this definition exactly, while others describe different concepts.Final Answer:
The index of the first time the element appears in the array -> Option CQuick Check:
First occurrence = first index found [OK]
- Confusing first occurrence with count of element
- Mixing first occurrence with last occurrence
- Thinking it means sum or total
x in array arr of size n?Solution
Step 1: Analyze each code snippet
for(int i=0; iStep 2: Check other options for correctness
for(int i=n-1; i>=0; i--) { if(arr[i] == x) return i; } return -1; searches from end, so it finds last occurrence. int i=0; while(arr[i] != x) i++; return i; may cause out-of-bound error if x not found. for(int i=0; iFinal Answer:
for(int i=0; i -> Option AQuick Check:
Start to end loop with match check = for(int i=0; i
- Looping backward for first occurrence
- Not handling element not found case
- Returning wrong index when element differs
int arr[] = {2, 4, 6, 4, 8};
int n = 5, x = 4;
int first = -1, last = -1;
for(int i=0; iSolution
Step 1: Trace the loop to find first and last occurrence
Array: [2,4,6,4,8], x=4. Loop i=0 to 4:
i=0: arr[0]=2 !=4, skip
i=1: arr[1]=4 ==4, first=-1 so first=1, last=1
i=2: arr[2]=6 !=4, skip
i=3: arr[3]=4 ==4, first=1 (unchanged), last=3
i=4: arr[4]=8 !=4, skipStep 2: Print first and last
first=1, last=3Final Answer:
1 3 -> Option AQuick Check:
First=1, Last=3 indexes for 4 [OK]
- Swapping first and last values
- Not updating last occurrence
- Ignoring first occurrence initialization
x in array arr of size n:int lastOccurrence(int arr[], int n, int x) {
int last = -1;
for(int i=0; iSolution
Step 1: Check the if condition inside the loop
The condition uses single '=' which is assignment, not comparison. This causes wrong behavior.Step 2: Correct the condition
It should be 'if(arr[i] == x)' to compare values properly.Final Answer:
Using assignment (=) instead of comparison (==) in if condition -> Option BQuick Check:
Use '==' for comparison, not '=' [OK]
- Using '=' instead of '==' in conditions
- Loop direction confusion for last occurrence
- Wrong initialization of variables
arr of size n with possible duplicates, which approach is the most efficient to find the first and last occurrence of element x?Solution
Step 1: Understand the array is sorted
Since the array is sorted, binary search can be used to find positions efficiently.Step 2: Use binary search twice
One binary search finds the first occurrence by moving left on matches, another finds last occurrence by moving right on matches.Final Answer:
Use two binary searches: one for first occurrence, one for last occurrence -> Option DQuick Check:
Sorted array + binary search = fastest method [OK]
- Using linear search on sorted array (slow)
- Sorting array again unnecessarily
- Not using binary search for efficiency
Ready to prove it?
Pass the test and this pattern moves unknown
