BackmediumQueueZomatoPaytm

Sequential Range Extent Solution

Problem Statement

You are provided with a sequence of integers representing a set of discrete measurements. The objective is to compute the total span of this dataset, defined as the absolute difference between the maximum value and the minimum value present in the sequence.

This metric, referred to as the Sequential Range Extent, quantifies the full width of the value distribution. It is a fundamental statistical measure used to understand the variability within a collection of data points without requiring complex aggregation or sorting operations.

Your task is to process the input array and return this single integer value. The solution should efficiently identify the extremal values in a single pass through the data structure.

Example 1
Input
4 1 7 3 9
Output
8

Explanation: The minimum value in the array is 1 and the maximum value is 9. The range extent is calculated as 9 - 1 = 8.

Example 2
Input
5 5 5 5
Output
0

Explanation: All elements are identical. The minimum is 5 and the maximum is 5. The range extent is 5 - 5 = 0.

Example 3
Input
-10 20 -5 15
Output
30

Explanation: The minimum value is -10 and the maximum value is 20. The range extent is calculated as 20 - (-10) = 30.

Example 4
Input
100
Output
0

Explanation: The array contains a single element. The minimum and maximum are both 100. The range extent is 100 - 100 = 0.

Constraints

  • 1 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9
  • The input will always contain at least one integer.
Live Compiler1 Free Run Available
Loading Editor...
Test Cases & Output
Click "Run" to test your 1 free compile trial!

🚀 Practice this problem

Run code, get AI hints & track streak

Sign Up Free

Sequential Range Extent — Problem Statement & Solution Guide

QueueMediumTask Scheduling
TimeO(n)
|
SpaceO(1)

Problem Description

You are provided with a sequence of integers representing a set of discrete measurements. The objective is to compute the total span of this dataset, defined as the absolute difference between the maximum value and the minimum value present in the sequence.

This metric, referred to as the Sequential Range Extent, quantifies the full width of the value distribution. It is a fundamental statistical measure used to understand the variability within a collection of data points without requiring complex aggregation or sorting operations.

Your task is to process the input array and return this single integer value. The solution should efficiently identify the extremal values in a single pass through the data structure.

DSA Pattern Breakdown

DSA Pattern Breakdown

"Sequential Range Extent"

medium

WHY DOES IT MATTER?

Finding min and max in one pass is a fundamental reduction technique that appears in many real‑world analytics pipelines, enabling constant‑space summarization of massive datasets.

OPTIMIZATION CHALLENGE

The key insight is that both extrema can be tracked simultaneously with two simple comparisons per element, eliminating the need for separate scans or auxiliary data structures.

REAL-WORLD CONNECTION

In distributed monitoring systems, each node reports latency measurements; a central aggregator keeps only the smallest and largest latency observed to quickly assess service health without persisting the full log.

During an interview, write the initialization clearly (e.g., using INT_MAX/INT_MIN or the first array element) and update both variables inside the same loop; this demonstrates clean, efficient thinking.

COMPLEXITY AT A GLANCE

⏱ Time:O(n)
đź’ľ Space:O(1)

Core Theory — Why This Approach?

The Sequential Range Extent problem reduces to finding the global minimum and maximum values in a list of integers. A naive solution would scan the array multiple times—once to locate the minimum and again to locate the maximum—resulting in O(2n) time, which is still linear but wastes constant factors and can be error‑prone when handling edge cases such as empty inputs or single‑element arrays. More importantly, in interview settings the expectation is to demonstrate a single‑pass algorithm that simultaneously tracks both extremes, showcasing an understanding of in‑place aggregation techniques.

The optimal paradigm leverages a single traversal of the sequence while maintaining two variables, minVal and maxVal. At each element, we update these variables using constant‑time comparisons. This approach guarantees O(n) time and O(1) auxiliary space, which is optimal because any algorithm must inspect each element at least once to be certain of the true extrema. The pattern exemplifies the broader class of "running aggregate" problems, where a property of the whole dataset can be derived incrementally without storing the entire collection.

Interview Questions on This Problem

Q1How would you compute the range (max‑min) of a stream of numbers where the total count is unknown and you cannot store all elements?

Maintain two variables, currentMin and currentMax, initialized to extreme sentinel values. For each incoming number, update currentMin = min(currentMin, num) and currentMax = max(currentMax, num). After the stream ends, the range is currentMax - currentMin. This uses O(1) space and O(n) time.

Q2Given an array that may contain duplicate values, does the presence of duplicates affect the algorithm for finding the sequential range extent?

No. Duplicates do not change the logic because the algorithm only cares about the smallest and largest values seen. The comparisons min and max naturally handle repeated values without extra work.

Q3Can you extend the single‑pass approach to also return the indices of the minimum and maximum elements? What additional considerations are needed?

Yes. Alongside minVal and maxVal, keep minIdx and maxIdx. When a new minimum is found, update both minVal and minIdx; similarly for a new maximum. Care must be taken for ties—if the problem requires the first occurrence, only update when the new value is strictly less/greater, not when equal.

Examples

Example 1

Input

4 1 7 3 9

Output

8

Explanation: The minimum value in the array is 1 and the maximum value is 9. The range extent is calculated as 9 - 1 = 8.

Example 2

Input

5 5 5 5

Output

0

Explanation: All elements are identical. The minimum is 5 and the maximum is 5. The range extent is 5 - 5 = 0.

Example 3

Input

-10 20 -5 15

Output

30

Explanation: The minimum value is -10 and the maximum value is 20. The range extent is calculated as 20 - (-10) = 30.

Example 4

Input

100

Output

0

Explanation: The array contains a single element. The minimum and maximum are both 100. The range extent is 100 - 100 = 0.

Constraints

  • 1 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9
  • The input will always contain at least one integer.

Optimal Approach & Strategy

Perform a single pass, updating both min and max simultaneously, yielding O(n) time and O(1) extra space.

Brute Force Approach

Run two separate passes: one to find the minimum, another to find the maximum, then compute their difference.

Verified Code Solutions

JavaScript Solution
Time: O(n)
const fs = require('fs');
const data = fs.readFileSync(0, 'utf8').trim();
if (data.length === 0) process.exit(0);
const nums = data.split(/\s+/).map(Number);
let min = Infinity, max = -Infinity;
for (const v of nums) {
    if (v < min) min = v;
    if (v > max) max = v;
}
console.log(max - min);

Asked in Top Tech Interviews

ZomatoPaytm

Solve in Interative Editor

Ready to test your code? Open our built-in compiler, run custom test suites, and see detailed complexity analysis reports instantly.