您的位置:首页 > 其它

leetcode--Missing Ranges

2015-08-31 19:37 357 查看
Missing Ranges

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"].

题意:给定一个排序数组和一个下限,上限,求各个区间的值

分类:数组

解法1:观察例子,看出对于某两个相邻的元素,例如1,3,

那么取1的右边,就是2,取3的左边,就是2,所以整个区间是2

例如0,1

0的右边是1,1的左边是0,所以整个区间不存在

public class Solution {
public List<String> findMissingRanges(int[] A, int lower, int upper) {
if(A==null) return null;
List<String> res = new ArrayList<String>();
for(int i=0; i<A.length; i++) {
while(i<A.length && A[i] == lower ) {lower++; i++;}
if(i>=A.length) break;
if(A[i] == lower+1) {
res.add(String.valueOf(lower));
} else {
res.add("" + lower + "->" + (A[i]-1) );
}
lower = A[i] + 1;
}

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