-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy path641.missing-interval.java
More file actions
38 lines (34 loc) · 1.04 KB
/
641.missing-interval.java
File metadata and controls
38 lines (34 loc) · 1.04 KB
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
34
35
36
37
38
public class Solution {
/*
* @param nums: a sorted integer array
* @param lower: An integer
* @param upper: An integer
* @return: a list of its missing ranges
*/
public List<String> findMissingRanges(int[] nums, int lower, int upper) {
List<String> ans = new ArrayList<>();
if (nums == null) {
return ans;
}
if (nums.length == 0) {
addRange(ans, lower, upper);
return ans;
}
addRange(ans, lower, (long) nums[0] - 1);
for (int i = 1; i < nums.length; i++) {
addRange(ans, (long) nums[i - 1] + 1, (long) nums[i] - 1);
}
addRange(ans, (long) nums[nums.length - 1] + 1, upper);
return ans;
}
private void addRange(List<String> ans, long lower, long upper) {
if (lower > upper) {
return;
}
if (lower == upper) {
ans.add(String.valueOf(lower));
return;
}
ans.add(lower + "->" + upper);
}
}