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;
}
}
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;
}
}
相关文章推荐
- SHELL排序
- 钢铁是怎样炼成的
- matlab 2012 vs2010混合编程
- Hadoop基于Protocol Buffer的RPC实现代码分析-Server端--转载
- Java多态与C++中多态的实现
- 优化Nginx中FastCGI参数的实例
- Today Widget介绍
- linux socket编程之socket()函数介绍 http://blog.chinaunix.net/uid-20788470-id-1841640.html
- 【csma/ca协议和csma/cd协议的matlab仿真详解】
- 人与其他事物的联系
- 爬虫中robots.txt
- JavaScript可否多线程?
- 大型手游登录流程详解
- hibernate的generator理解
- LeetCode:Binary Tree Paths 简洁算法
- HDU5424——DFS——Rikka with Graph II
- How to Install Node.js
- HDU 4628 Pieces(状态压缩DP)
- TestLink的安装与配置
- Bag of words(matlab实现)