Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7]
, return ["0->2","4->5","7"].
public class Solution {
private List<String> res;
public List<String> summaryRanges(int[] nums) {
res = new ArrayList<String>();
if (nums.length == 0) return res;
int n1 = nums[0], n2 = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] == nums[i-1] + 1) n2 = nums[i];
else {
helper(n1, n2);
n1 = n2 = nums[i];
}
}
helper(n1,n2);
return res;
}
private void helper(int n1, int n2) {
if (n1 == n2) {
res.add(Integer.toString(n1));
}
else {
StringBuilder tmp = new StringBuilder();
tmp.append(n1);
tmp.append("->");
tmp.append(n2);
res.add(tmp.toString());
}
}
}