Reviewed by Aditya Kumar · Last reviewed 2026-03-24
**Why This Problem:** Teaches two-pointer and prefix reasoning. Water at i = min(max_left, max_right) - height[i]. **Approaches:** (1) Precompute max_left, max_right arrays—O(n) time, O(n) space. (2) Two pointers—O(n) time, O(1) space: move from smaller side, track max on that...
This easy-level Python/Coding question appears frequently in data engineering interviews at companies like Meesho. While less common, it tests deeper understanding that distinguishes strong candidates.
Start by clearly defining the core concept being asked about. Interviewers want to see that you understand the fundamentals before diving into implementation details. Structure your answer with a definition, then explain the practical application with a concise example.
Why This Problem: Teaches two-pointer and prefix reasoning. Water at i = min(max_left, max_right) - height[i].
Approaches: (1) Precompute max_left, max_right arrays—O(n) time, O(n) space. (2) Two pointers—O(n) time, O(1) space: move from smaller side, track max on that side. Water = max_side - height.
Data Eng Analogy: 'Valleys' in time-series—local minima between peaks. Fill pattern similar to interpolating missing values between known bounds.
def trap(height):
l, r, lmax, rmax, water = 0, len(height)-1, 0, 0, 0
while l < r:
if height[l] < height[r]:
lmax = max(lmax, height[l])
water += lmax - height[l]
l += 1
else:
rmax = max(rmax, height[r])
water += rmax - height[r]
r -= 1
return water
Red Flag: O(n) space when two-pointer gives O(1). Pro-Move: 'Same min-of-two-max pattern in our gap-filling logic for sparse time series.'
Some links below are affiliate links. If you buy through them we may earn a small commission at no extra cost to you — it helps keep DataEngPrep free.
According to DataEngPrep.tech, this is one of the most frequently asked Python/Coding interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.