您的位置:首页 > 其它

[Leetcode刷题]Missing Ranges

2016-06-25 09:51 253 查看
Given a sorted integer array where the range of elements are [lower, upper] inclusive, return its missing ranges.

For example, given 
[0, 1, 3, 50, 75]
, lower = 0 and upper =
99, return 
["2", "4->49", "51->74", "76->99"].

Solutions
public class Solution {
public List<String> findMissingRanges(int[] nums, int lower, int upper) {
List<String> result = new ArrayList<String>();
if(nums == null){
return result;
}
if(lower <= Integer.MIN_VALUE || upper >= Integer.MAX_VALUE || lower > upper){
return result;
}
int cur;
// check for the first interval
int prev = lower - 1;
for(int i = 0; i <= nums.length; i++){
// check for the last interval
cur = i == nums.length? upper + 1 : nums[i];
if(cur - prev > 1){
result.add(range(prev + 1, cur - 1));
}
prev = cur;
}
return result;
}

public String range(int start, int end){
return start == end? String.valueOf(start) : start + "->" + end;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode