After understanding the fundamentals of Arrays, let's look at the questions frequently asked in coding and technical interviews.
๐น 1. What is an Array?
Answer:
An array is a data structure used to store multiple elements in an ordered sequence.
Each element can generally be accessed using an index.
Example:
arr = [10, 20, 30, 40]
print(arr[2])
Output:
30
The index of "30" is "2".
The main advantage of an array is efficient index-based access.
๐น 2. What is the time complexity of accessing an array element?
Answer:
Accessing an element by its index is typically:
O(1)
Example:
arr = [10, 20, 30, 40, 50]
print(arr[3])
The system can directly access the element at index "3" rather than searching through all previous elements.
This is one of the biggest advantages of arrays.
๐น 3. What is the difference between an Array and a Linked List?
Answer:
An array stores elements in a contiguous structure in traditional array implementations, while a linked list stores elements as separate nodes connected using references/pointers.
Arrays provide fast index-based access:
arr[i] โ O(1)
Linked lists generally require traversal to reach a particular position:
Access โ O(n)
However, linked lists can be advantageous when inserting or deleting nodes at a known position because elements do not need to be shifted like they may in an array.
The choice depends on the problem.
๐น 4. How do you find the largest element in an array?
Answer:
Traverse the array while maintaining the largest value found so far.
Example:
arr = [10, 45, 23, 67, 12]
largest = arr[0]
for num in arr:
if num > largest:
largest = num
print(largest)
Output:
67
Time complexity:
O(n)
Space complexity:
O(1)
๐น 5. How do you find the second-largest element?
Answer:
We can maintain two variables:
largest
second_largest
Example:
arr = [10, 45, 23, 67, 12]
largest = float('-inf')
second_largest = float('-inf')
for num in arr:
if num > largest:
second_largest = largest
largest = num
elif num > second_largest and num != largest:
second_largest = num
print(second_largest)
Output:
45
This can be solved in:
Time: O(n)
Space: O(1)
An important interview follow-up is:
"What if all elements are equal?"
A good solution should explicitly handle the case where a distinct second-largest element does not exist.
๐น 6. How do you reverse an array?
Answer:
One approach is to use two pointers.
Example:
arr = [1, 2, 3, 4, 5]
left = 0
right = len(arr) - 1
while left < right:
arr[left], arr[right] = arr[right], arr[left]
left += 1
right -= 1
print(arr)
Output:
[5, 4, 3, 2, 1]
Time complexity:
O(n)
Space complexity:
O(1)
This is an example of an in-place algorithm because we modify the original array instead of creating another array.
๐น 7. How do you find duplicate elements in an array?
Answer:
A HashSet can be used to keep track of elements already encountered.
Example:
arr = [1, 2, 3, 2, 4, 1]
seen = set()
duplicates = set()
for num in arr:
if num in seen:
duplicates.add(num)
else:
seen.add(num)
print(duplicates)
Output:
{1, 2}