How do you find a subarray with a given sum efficiently?

DSA
Medium
Google
114.3K views

Identify a contiguous subarray within a non-negative array that sums to a specific target value. This is a classic sliding window application.

Why Interviewers Ask This

This problem tests your familiarity with the sliding window technique, which is crucial for array problems involving sums or averages. It demonstrates your ability to reduce time complexity from O(n^2) to O(n) by maintaining a running sum and adjusting the window dynamically. Interviewers look for clean code and an explanation of why the non-negative constraint matters.

How to Answer This Question

Explain initializing two pointers, start and end, both at the beginning. Maintain a running sum of the current window. If the sum is less than the target, expand the window by moving the end pointer. If the sum exceeds the target, shrink the window by moving the start pointer. Stop when the sum equals the target or the end pointer reaches the array limit.

Key Points to Cover

  • Utilize non-negative property for sliding window
  • Expand window when sum is too small
  • Shrink window when sum is too large
  • Achieve O(n) time complexity

Sample Answer

Since the numbers are non-negative, I can use the sliding window technique. I start with a window of size zero and expand it by adding elements until the sum equals or exceeds the target. If it exceeds, I remove elements…

Common Mistakes to Avoid

  • Attempting to use prefix sums unnecessarily
  • Failing to handle the case where no subarray exists
  • Not resetting the window correctly when sum exceeds target

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 89 DSA questionsBrowse all 129 Google questions