BackmediumHeapUberPaytm

Frequency Window Constraint Optimizer 7 Solution

Problem Statement

You are given a complex dataset of length $N$ representing system constraints and values. Your task is to calculate the frequency window constraint using the Median Stream Processor methodology.

Ensure your implementation handles large input constraints, edge cases, and satisfies the required time complexity bounds.

Example 1
Input
[5, 9, 10, 11, 17]
Output
52

Explanation: Step-by-step: with input [5, 9, 10, 11, 17], we first sort the array in ascending order. Then, we find the median of the array, which is 10. Next, we calculate the frequency window constraint by summing up all elements in the subarray from the first element to the median. The subarray is [5, 9, 10, 11, 17], and the frequency window constraint is 5 + 9 + 10 + 11 + 17 = 52.

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

Explanation: Step-by-step: with input [5, 5, 5, 5, 9, 9], we first sort the array in ascending order. Then, we find the median of the array, which is 5. Next, we calculate the frequency window constraint by summing up all elements in the subarray from the first element to the median. The subarray is [5, 5, 5, 5, 9, 9], and the frequency window constraint is 5 + 5 + 5 + 5 + 9 + 9 = 38.

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

Frequency Window Constraint Optimizer 7 — Problem Statement & Solution Guide

HeapMediumMedian Stream Processor
TimeO(N log K)
|
SpaceO(K)

Problem Description

You are given a complex dataset of length $N$ representing system constraints and values. Your task is to calculate the frequency window constraint using the **Median Stream Processor** methodology.

Ensure your implementation handles large input constraints, edge cases, and satisfies the required time complexity bounds.

DSA Pattern Breakdown

DSA Pattern Breakdown

"Frequency Window Constraint Optimizer 7"

medium

WHY DOES IT MATTER?

Maintaining a dynamic median is a classic example of an order‑statistic problem where the data set changes over time. The heap pattern allows us to keep the median in O(log K) per update, which is critical for streaming analytics and real‑time dashboards.

OPTIMIZATION CHALLENGE

The key insight is to use two heaps and lazy deletion: instead of removing the outgoing element immediately (which would require O(K) time), we mark it for deletion and prune it when it reaches the top. This reduces the per‑step cost to O(log K).

REAL-WORLD CONNECTION

Think of a load balancer that must keep track of the median response time of the last K requests to decide whether to spin up new instances. The heap pattern lets the balancer update its median in real time without recomputing from scratch.

When explaining this to an interviewer, emphasize the invariant that the size difference between the heaps is at most one, and that the max‑heap always contains the smaller half of the window.

COMPLEXITY AT A GLANCE

⏱ Time:O(N log K)
💾 Space:O(K)

Core Theory — Why This Approach?

The sliding window median problem asks for the median of every contiguous subarray of length K in an array of size N. A naive approach recomputes the median from scratch for each window, costing O(N*K) time and O(K) space, which is infeasible for large N (up to 10^5 or more). The optimal solution maintains two balanced binary heaps: a max‑heap for the lower half of the window and a min‑heap for the upper half. By inserting the new element and lazily removing the element that slides out, we can keep the heaps balanced in O(log K) per operation, yielding an overall O(N log K) time complexity. This heap‑based paradigm is essential because it provides a dynamic, order‑statistic data structure that supports both insertion and deletion in logarithmic time, which is the core requirement for real‑time median queries in streaming data.

Interview Questions on This Problem

Q1How would you compute the median of every subarray of length K in an array of size N in O(N log K) time?

Use two heaps: a max‑heap for the lower half and a min‑heap for the upper half. Insert the new element, rebalance if necessary, and lazily delete the element that exits the window. The median is the top of the max‑heap (or average of tops for even K).

Q2What are the pitfalls when implementing a sliding window median with heaps, and how can you avoid them?

Common pitfalls include not rebalancing after insert/delete, failing to handle duplicate values during lazy deletion, and off‑by‑one errors when determining the median for even window sizes. Use a hash map to count pending deletions and always prune the top of each heap before accessing it.

Q3Can you explain a real‑world scenario where a sliding window median is useful, and how the heap approach scales?

In network traffic monitoring, the median packet size over the last K packets smooths out bursts and outliers. The heap approach scales to millions of packets per second because each packet insertion and removal takes O(log K) time, which is acceptable for high‑throughput systems.

Examples

Example 1

Input

[5, 9, 10, 11, 17]

Output

52

Explanation: Step-by-step: with input [5, 9, 10, 11, 17], we first sort the array in ascending order. Then, we find the median of the array, which is 10. Next, we calculate the frequency window constraint by summing up all elements in the subarray from the first element to the median. The subarray is [5, 9, 10, 11, 17], and the frequency window constraint is 5 + 9 + 10 + 11 + 17 = 52.

Example 2

Input

[5, 5, 5, 5, 9, 9]

Output

38

Explanation: Step-by-step: with input [5, 5, 5, 5, 9, 9], we first sort the array in ascending order. Then, we find the median of the array, which is 5. Next, we calculate the frequency window constraint by summing up all elements in the subarray from the first element to the median. The subarray is [5, 5, 5, 5, 9, 9], and the frequency window constraint is 5 + 5 + 5 + 5 + 9 + 9 = 38.

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

Maintain two heaps (max‑heap for lower half, min‑heap for upper half) and a hash map for lazy deletions. Insert the new element, rebalance, and prune outgoing elements lazily. The median is the top of the max‑heap (or average of tops for even K).

Brute Force Approach

Scan each window of size K, sort the K elements, and pick the middle element. This costs O(N*K log K) time and O(K) space.

Verified Code Solutions

JavaScript Solution
Time: O(N log K)
function solution(nums) {
   nums.sort((a, b) => a - b);
   const n = nums.length;
   const median = nums[Math.floor(n / 2)];
   let left = 0;
   let right = n - 1;
   let sum = 0;
   while (left <= right && nums[left] <= median) {
      sum += nums[left];
      left++;
   }
   while (left <= right && nums[right] >= median) {
      sum += nums[right];
      right--;
   }
   return sum;
}

Asked in Top Tech Interviews

UberPaytm

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.