Quick Overview

This question evaluates proficiency in array processing and the next-greater-element concept, measuring algorithmic reasoning about sequence traversal, comparisons, and managing time/space trade-offs.

Compute days until a higher reading

Company: Sonatus

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: hard

Interview Round: Technical Screen

You are given an array `readings[]` representing sensor values over consecutive days (e.g., temperatures). For each day `i`, compute how many days you must wait until you see a strictly higher reading on a future day `j > i`. If there is no future day with a higher reading, output `0` for that day. ### Input - An integer array `readings` of length `n`. ### Output - An integer array `ans` of length `n` where `ans[i]` is the number of days until a higher reading occurs, or `0` if none exists. ### Example - Input: `readings = [30, 38, 30, 36, 35, 40, 28]` - Output: `[1, 4, 1, 2, 1, 0, 0]` ### Constraints (typical) - `1 <= n <= 2e5` - Readings fit in 32-bit signed integers. ### Notes - “Higher” means strictly greater (`>`), not greater-or-equal.

Quick Answer: This question evaluates proficiency in array processing and the next-greater-element concept, measuring algorithmic reasoning about sequence traversal, comparisons, and managing time/space trade-offs.

For each index, return how many days until a strictly higher future reading appears. If none appears, return 0 at that index.

Constraints

  • Higher means strictly greater
  • n can be up to 2e5

Examples

Input: ([30, 38, 30, 36, 35, 40, 28],)

Expected Output: [1, 4, 1, 2, 1, 0, 0]

Input: ([5, 4, 3],)

Expected Output: [0, 0, 0]

Hints

  1. Keep a monotonic decreasing stack of unresolved indices.

Loading coding console...