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"].
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
思路:就是用双指针i, j, j一直移动,遇见不连续的,加入list,再继续走;
class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> list = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
int i = 0; int j = 0;
while(j < nums.length) {
while(j + 1 < nums.length && nums[j] + 1 == nums[j + 1]) {
j++;
}
if(i != j) {
list.add(nums[i] + "->" + nums[j]);
j++;
i = j;
} else {
// i == j;
list.add(String.valueOf(nums[i]));
j++;
i = j;
}
}
return list;
}
}