Summary Ranges – Asked in Yandex Interview

yandex logo
yandex
July 28, 20253 reads

Summary

This post details my approach and solution to the 'Summary Ranges' problem, which I encountered during a Yandex interview.

Full Experience

Intuition

To summarize ranges in a sorted array, we can identify segments of consecutive numbers. Whenever a gap occurs between two numbers, it marks the end of the current range

Approach

We iterate through the array while keeping track of the start of the current range using a variable s.By appending float('inf') to the list, we ensure the final range is processed without requiring additional checks after the loop

At each step, we check if nums[i] - nums[i-1] > 1, which means the consecutive sequence has ended

We then:

  • Record the range from s to nums[i-1]
  • Update s to start a new range from nums[i]

If the start and end of the range are the same, we store it as a single number. Otherwise, we use the "start->end" format

Complexity

  • Time complexity: $$O(n)$$ — We go through the list once
  • Space complexity: $$O(n)$$ — for storing the resulting list of summary strings

Interview Questions (1)

Q1
Summary Ranges
Data Structures & AlgorithmsEasy

To summarize ranges in a sorted array, we can identify segments of consecutive numbers. Whenever a gap occurs between two numbers, it marks the end of the current range. My approach involves iterating through the array while keeping track of the start of the current range using a variable s. By appending float('inf') to the list, we ensure the final range is processed without requiring additional checks after the loop. At each step, we check if nums[i] - nums[i-1] > 1, which means the consecutive sequence has ended. We then record the range from s to nums[i-1] and update s to start a new range from nums[i]. If the start and end of the range are the same, we store it as a single number. Otherwise, we use the "start->end" format.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!