-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMissingRange.java
More file actions
36 lines (33 loc) · 952 Bytes
/
Copy pathMissingRange.java
File metadata and controls
36 lines (33 loc) · 952 Bytes
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
package leetcode;
/*
* Given a sorted integer array where the range of elements are [0, 99] inclusive,
* return its missing ranges.
For example, given [0, 1, 3, 50, 75],
return [“2”, “4->49”, “51->74”, “76->99”]*/
import java.util.ArrayList;
import java.util.List;
public class MissingRange {
public List<String> findMissingRanges(int[] nums, int lower, int upper){
List<String> ret = new ArrayList<String>();
int prev = lower-1;
for(int num:nums){
if(num - prev > 1){
ret.add(this.addRange(prev+1, num-1));
}
prev = num;
}
if(nums.length > 0 && nums[nums.length-1] != upper){
ret.add(this.addRange(nums[nums.length-1]+1, upper));
}
if(nums.length == 0){
ret.add(this.addRange(lower,upper));
}
return ret;
}
private String addRange(int start,int end){
if(start == end)
return Integer.toString(start);
else
return Integer.toString(start) + "->" + Integer.toString(end);
}
}