Problem · Array

Request Retry Count

Learn this problem
EasyIBM logoIBMNEW GRADOA
See IBM hiring insights

Problem statement

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.

Function

getRetryCount(gap: int, requestIds: String[], timestamps: int[]) → int

Examples

Example 1

gap = 10requestIds = ["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