Problem · Array

Request Retry Count

EasyIBMOA
See IBM hiring insights

An integer gap defines the maximum allowed time difference, in seconds, to consider a retry.

Two arrays are provided:

  • requestIds, where each element represents the request ID of a log
  • timestamps, where each element represents the time of the corresponding log, sorted in non-decreasing order

A retry occurs when two consecutive logs for the same request ID have a time difference of at most gap.

Compute the total number of retries across all request IDs and return the result.

Examples
01 · Example 1
gap = 10
requestIds = ["r1", "r1", "r1", "r2", "r2"]
timestamps = [100, 105, 200, 300, 302]
return = 2

The table below shows the total number of retries for each request ID:

Request Retry Table
Request IDTimestampsRetry PairsRetry Count
r1[100, 105, 200](100, 105)1
r2[300, 302](300, 302)1

The total number of retries = 1 + 1 = 2.

Hence, the answer is 2.

Constraints
  • 1 ≤ gap ≤ 10^9
  • 1 ≤ n ≤ 2 * 10^6
  • 0 ≤ timestamps[i] ≤ 10^9
More IBM problems
drafts saved locally
public int getRetryCount(int gap, String[] requestIds, int[] timestamps) {
  // write your code here
}
gap10
requestIds["r1", "r1", "r1", "r2", "r2"]
timestamps[100, 105, 200, 300, 302]
expected2
checking account