forked from JoshCrozier/leetcode-javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path0228-summary-ranges.js
33 lines (32 loc) · 907 Bytes
/
0228-summary-ranges.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 228. Summary Ranges
* https://leetcode.com/problems/summary-ranges/
* Difficulty: Easy
*
* You are given a sorted unique integer array nums.
*
* A range [a,b] is the set of all integers from a to b (inclusive).
*
* 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
*/
/**
* @param {number[]} nums
* @return {string[]}
*/
var summaryRanges = function(nums) {
const result = [];
for (let i = 0, n = nums[0]; i < nums.length; i++) {
if (nums[i] + 1 !== nums[i + 1]) {
result.push(nums[i] === n ? `${n}` : `${n}->${nums[i]}`);
n = nums[i + 1];
}
}
return result;
};