Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Schedule Network Retries with Backoff

EasyPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Schedule Network Retries with Backoff. Start with the requirements on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

A mobile app at Nimbus Mobile fetches data from several endpoints. Each request may time out multiple times before succeeding, and the app retries with exponential backoff.

Implement a function that computes when each request finally succeeds, assuming requests are processed independently and each retry waits longer than the previous one.

Formal Specification

Given:

  • timeouts: an array where timeouts[i] is the number of consecutive timeouts before request i succeeds.
  • base_delay: the delay after the first timeout.
  • max_retries: the maximum number of retries allowed.

For each request:

  1. The first attempt starts at time 0.
  2. If it times out, retry after delays: base_delay, 2 * base_delay, 4 * base_delay, ...
  3. If the request succeeds within max_retries, return the total elapsed wait time before success.
  4. If it still has not succeeded after max_retries, return -1 for that request.

Return an array of results for all requests.

Constraints

  • 1 <= len(timeouts) <= 10^5
  • 0 <= timeouts[i] <= 10^9
  • 1 <= base_delay <= 10^6
  • 0 <= max_retries <= 60

Function Signature

def schedule_retries(timeouts, base_delay, max_retries):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output