BackmediumStringsInfosysFlipkart

Shortest Path Cost Protocol 3 Solution

Problem Statement

Given a complex dataset of length N representing system constraints and values, calculate the shortest path cost using the Subsequence Verification methodology. The shortest path cost is the minimum value in the array.

Example 1
Input
[5, -14, 5, 3, 2]
Output
-14

Explanation: Step-by-step: Given the input array [5, -14, 5, 3, 2], we first identify that the array contains both positive and negative numbers. The solution should return the minimum value in the array, which is -14.

Example 2
Input
[5, 5, 5, 5]
Output
5

Explanation: Step-by-step: Given the input array [5, 5, 5, 5], we first identify that the array contains only one unique value. The solution should return this unique value, which is 5.

Constraints

  • 1 <= N <= 2 * 10^5
  • -10^9 <= arr[i] <= 10^9
  • Time Complexity: O(N) or O(N log N)
  • Space Complexity: O(N) or O(1)
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

Shortest Path Cost Protocol 3 — Problem Statement & Solution Guide

StringsMediumSubsequence Verification
TimeO(N)
|
SpaceO(1)

Problem Description

Given a complex dataset of length N representing system constraints and values, calculate the shortest path cost using the Subsequence Verification methodology. The shortest path cost is the minimum value in the array.

DSA Pattern Breakdown

DSA Pattern Breakdown

"Shortest Path Cost Protocol 3"

medium

WHY DOES IT MATTER?

Finding the minimum is a fundamental reduction pattern used in optimization, routing, and real‑time monitoring. Mastering this pattern enables engineers to design low‑latency services that need quick aggregate decisions without full data retention.

OPTIMIZATION CHALLENGE

The key insight is that the minimum operation is associative and idempotent, allowing a single-pass reduction. By maintaining just one variable, we avoid storing intermediate candidates, collapsing both time and space complexity to their theoretical minima.

REAL-WORLD CONNECTION

Think of a network router selecting the cheapest path among many routes; the router only needs the smallest cost metric, not the full list of paths, mirroring the minimum‑finding reduction in distributed routing protocols like OSPF.

During an interview, write the loop first, then immediately discuss edge cases (empty array, negative numbers) and initialization choices. This shows you think about correctness before optimization.

COMPLEXITY AT A GLANCE

⏱ Time:O(N)
💾 Space:O(1)

Core Theory — Why This Approach?

The Shortest Path Cost Protocol 3 reduces to finding the minimum value in a sequence, a classic problem that can be solved by a single linear scan. The naive approach—checking every pair of elements or generating all subsequences—has a quadratic or exponential time complexity, which quickly becomes infeasible for large N (e.g., N > 10⁶) due to both CPU time and memory pressure. By recognizing that the "shortest path cost" is simply the global minimum, we can apply the optimal paradigm of a greedy, one‑pass algorithm: maintain a running minimum while iterating through the array, updating it whenever a smaller element is encountered. This leverages the monotonic property of minima and eliminates the need for auxiliary data structures, yielding O(N) time and O(1) extra space.

The underlying theory aligns with the concept of "subsequence verification" where we only need to confirm the existence of a particular property (being the smallest) across the entire sequence. Because the property is associative and idempotent, the verification can be collapsed into a reduction operation (min) that is both order‑independent and constant‑time per element. This reduction is the cornerstone of many streaming and real‑time analytics pipelines, where you cannot afford to store the whole dataset but still need to compute aggregates like minima, maxima, or sums.

In contrast, a brute‑force enumeration of all subsequences would generate 2^N possibilities, each requiring a scan to compute its minimum, leading to O(N·2^N) work—clearly impractical. The optimal greedy reduction sidesteps this combinatorial explosion by exploiting the fact that the global minimum of the whole set is also the minimum of any superset, allowing us to discard intermediate results immediately.

Interview Questions on This Problem

Q1How would you find the minimum value in an array of up to 10⁷ integers under strict memory constraints?

Iterate once through the array, keeping a single variable for the current minimum. Initialize it with the first element (or Integer.MAX_VALUE) and update it whenever a smaller element is seen. This uses O(1) extra space and O(N) time.

Q2Explain why generating all subsequences to verify the shortest path cost is a bad idea for large inputs.

Generating all subsequences results in 2^N combinations, leading to exponential time and memory usage. For large N, this quickly exceeds any realistic resource limits, whereas a linear scan provides the answer directly without combinatorial overhead.

Q3In a distributed system where each node holds a chunk of the dataset, how can you compute the global minimum efficiently?

Each node computes the local minimum of its chunk using a linear scan, then a coordinator aggregates these local minima by taking the minimum of the received values. This reduces communication to O(number_of_nodes) and maintains overall O(N) time across the system.

Examples

Example 1

Input

[5, -14, 5, 3, 2]

Output

-14

Explanation: Step-by-step: Given the input array [5, -14, 5, 3, 2], we first identify that the array contains both positive and negative numbers. The solution should return the minimum value in the array, which is -14.

Example 2

Input

[5, 5, 5, 5]

Output

5

Explanation: Step-by-step: Given the input array [5, 5, 5, 5], we first identify that the array contains only one unique value. The solution should return this unique value, which is 5.

Constraints

  • 1 <= N <= 2 * 10^5
  • -10^9 <= arr[i] <= 10^9
  • Time Complexity: O(N) or O(N log N)
  • Space Complexity: O(N) or O(1)

Optimal Approach & Strategy

Traverse the array once, maintaining a running minimum, achieving O(N) time and O(1) extra space.

Brute Force Approach

Compare each element with every other element to determine the smallest, resulting in O(N²) time.

Verified Code Solutions

JavaScript Solution
Time: O(N)
function solution(nums) {
   return Math.min(...nums);
}

Asked in Top Tech Interviews

InfosysFlipkart

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.