Problem Description:
Given a sorted integer array without duplicates, return the summary of its ranges.
Example 1:
Input: [0,1,2,4,5,7] Output: ["0->2","4->5","7"] Explanation: 0,1,2 form a continuous range; 4,5 form a continuous range.Example 2:
Input: [0,2,3,4,6,8,9] Output: ["0","2->4","6","8->9"] Explanation: 2,3,4 form a continuous range; 8,9 form a continuous range.
Analysis:
遍历整个队列,然后以每个元素为起点找到连续序列的终点然后连接起来。代码如下:
Code:
class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> res = new ArrayList<>();
int i, j;
for(i = 0; i < nums.length; i++) {
int ans = nums[i];
StringBuffer temp = new StringBuffer();
temp.append(String.valueOf(ans));
for(j = i + 1; j < nums.length; j++) {
if(nums[j] == nums[j - 1] + 1) {
continue;
} else {
break;
}
}
if(j - 1 != i) {
temp.append("->");
temp.append(String.valueOf(nums[j - 1]));
}
res.add(temp.toString());
i = j - 1;
}
return res;
}
}