📖 Scenario: Imagine you have a list of daily temperatures recorded over several days. You want to find out on which days a specific temperature first and last appeared.
🎯 Goal: Build a program that finds the first and last position of a given temperature in a list of temperatures.
📋 What You'll Learn
Create a list of integers called temperatures with exact values
Create an integer variable called targetTemperature with a specific value
Write code to find the first and last occurrence index of targetTemperature in temperatures
Print the first and last occurrence indices in the specified format
💡 Why This Matters
🌍 Real World
Finding the first and last occurrence of a value in a list is useful in many real-world scenarios like analyzing sensor data, searching logs, or processing user inputs.
💼 Career
This skill is important for software developers and data analysts who need to efficiently search and analyze data collections.
Progress0 / 4 steps
1
Create the list of temperatures
Create a list of integers called temperatures with these exact values: 23, 25, 23, 22, 25, 23, 24
DSA C#
Hint
Use List<int> and initialize it with the exact values inside curly braces.
2
Set the target temperature
Create an integer variable called targetTemperature and set it to 23
DSA C#
Hint
Declare an integer variable and assign the value 23.
3
Find first and last occurrence indices
Write code to find the first occurrence index of targetTemperature in temperatures using IndexOf and the last occurrence index using LastIndexOf. Store them in variables called firstIndex and lastIndex respectively.
DSA C#
Hint
Use IndexOf and LastIndexOf methods on the list.
4
Print the first and last occurrence indices
Write a print statement to display the first and last occurrence indices in this exact format: First occurrence: X, Last occurrence: Y where X and Y are the values of firstIndex and lastIndex.
DSA C#
Hint
Use Console.WriteLine with string interpolation to print the indices.
Practice
(1/5)
1. What does the "First and Last Occurrence of Element" problem ask you to find in an array?
easy
A. The number of unique elements in the array
B. The sum of all elements in the array
C. The maximum and minimum elements in the array
D. The first and last positions where a given element appears
Solution
Step 1: Understand the problem statement
The problem asks to find the first and last positions of a specific element in an array.
Step 2: Differentiate from other array queries
It is not about sums, max/min, or counting unique elements, but about positions of a target element.
Final Answer:
The first and last positions where a given element appears -> Option D
Quick Check:
Positions of element = first and last occurrence [OK]
Hint: Look for positions of target element, not values or counts [OK]
Common Mistakes:
Confusing with finding max or min element
Trying to sum elements instead of finding positions
Counting unique elements instead of occurrences
2. Which of the following C# code snippets correctly initializes an array to find the first and last occurrence of an element?
easy
A. int arr = {1, 2, 3, 4, 5};
B. int arr = new int[5] {1, 2, 3, 4, 5};
C. int[] arr = new int[] {1, 2, 3, 4, 5};
D. int arr[] = new int[] {1, 2, 3, 4, 5};
Solution
Step 1: Check array initialization syntax in C#
Correct syntax is: int[] arr = new int[] {1, 2, 3, 4, 5};
Step 2: Identify incorrect options
int arr = new int[5] {1, 2, 3, 4, 5}; has wrong syntax (cannot assign array with size and initializer like that), A is missing 'new int[]', D uses C-style syntax invalid in C#.
Final Answer:
int[] arr = new int[] {1, 2, 3, 4, 5}; -> Option C
Hint: Use 'int[] arr = new int[] { ... }' for array initialization [OK]
Common Mistakes:
Using C/C++ style array declarations
Omitting 'new int[]' keyword
Assigning array size with initializer incorrectly
3. What will be the output of the following C# code?
int[] arr = {5, 3, 7, 3, 9};
int target = 3;
int first = -1, last = -1;
for (int i = 0; i < arr.Length; i++) {
if (arr[i] == target) {
if (first == -1) first = i;
last = i;
}
}
Console.WriteLine($"{first} {last}");
medium
A. 3 1
B. 1 3
C. 0 4
D. -1 -1
Solution
Step 1: Trace the loop to find first and last occurrence of 3
Hint: Track first when found, update last every time [OK]
Common Mistakes:
Swapping first and last indices
Not updating last occurrence correctly
Initializing first and last with wrong values
4. Identify the error in the following code that tries to find the first and last occurrence of an element:
int[] arr = {2, 4, 2, 5, 2};
int target = 2;
int first = 0, last = 0;
for (int i = 0; i < arr.Length; i++) {
if (arr[i] == target) {
first = i;
last = i;
}
}
Console.WriteLine($"{first} {last}");
medium
A. first and last are initialized incorrectly, causing wrong output
B. Loop condition should be i <= arr.Length
C. Target value is not assigned properly
D. Console.WriteLine syntax is incorrect
Solution
Step 1: Analyze initialization of first and last
Both first and last start at 0. Inside loop, first and last are set to i every time target is found, so first will be overwritten and end up as last occurrence index.
Step 2: Identify correct approach
First should be set only once when first occurrence is found (e.g., if first == -1). Last should update every time target is found.
Final Answer:
first and last are initialized incorrectly, causing wrong output -> Option A
Quick Check:
Initialize first to -1 and update only once [OK]
Hint: Initialize first to -1 and update only once [OK]
Common Mistakes:
Overwriting first occurrence index
Using wrong loop boundary
Incorrect Console.WriteLine format
5. Given a sorted array with possible duplicates, how can you efficiently find the first and last occurrence of a target element using C#?
hard
A. Use two binary searches: one for first occurrence, one for last occurrence
B. Traverse the array twice: once from start, once from end
C. Use a dictionary to store element counts
D. Sort the array again and find the target
Solution
Step 1: Understand the array is sorted with duplicates
Sorted array allows binary search to find positions efficiently.
Step 2: Use binary search twice
One binary search finds the first occurrence by moving left when target found, another finds last occurrence by moving right.
Step 3: Avoid full traversal or extra sorting
Traversing twice or sorting again is inefficient. Dictionary counts do not give positions.
Final Answer:
Use two binary searches: one for first occurrence, one for last occurrence -> Option A
Quick Check:
Binary search twice = efficient first and last occurrence [OK]
Hint: Binary search twice for first and last occurrence in sorted array [OK]
Common Mistakes:
Using linear search on large sorted arrays
Sorting array again unnecessarily
Using dictionary counts instead of positions
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.