g0201_0300.s0228_summary_ranges.readme.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-kotlin Show documentation
Show all versions of leetcode-in-kotlin Show documentation
Kotlin-based LeetCode algorithm problem solutions, regularly updated
228\. Summary Ranges
Easy
You are given a **sorted unique** integer array `nums`.
Return _the **smallest sorted** list of ranges that **cover all the numbers in the array exactly**_. That is, each element of `nums` is covered by exactly one of the ranges, and there is no integer `x` such that `x` is in one of the ranges but not in `nums`.
Each range `[a,b]` in the list should be output as:
* `"a->b"` if `a != b`
* `"a"` if `a == b`
**Example 1:**
**Input:** nums = [0,1,2,4,5,7]
**Output:** ["0->2","4->5","7"]
**Explanation:** The ranges are: [0,2] --> "0->2" [4,5] --> "4->5" [7,7] --> "7"
**Example 2:**
**Input:** nums = [0,2,3,4,6,8,9]
**Output:** ["0","2->4","6","8->9"]
**Explanation:** The ranges are: [0,0] --> "0" [2,4] --> "2->4" [6,6] --> "6" [8,9] --> "8->9"
**Example 3:**
**Input:** nums = []
**Output:** []
**Example 4:**
**Input:** nums = [-1]
**Output:** ["-1"]
**Example 5:**
**Input:** nums = [0]
**Output:** ["0"]
**Constraints:**
* `0 <= nums.length <= 20`
* -231 <= nums[i] <= 231 - 1
* All the values of `nums` are **unique**.
* `nums` is sorted in ascending order.