LeetCode-Summary Ranges

LiBlog發表於2016-07-21

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.

Solution:

 1 public class Solution {
 2     public String getRangeStr(int start, int end){
 3         if (start == end){
 4                     return Integer.toString(start);
 5             } else {
 6                 StringBuilder builder = new StringBuilder();
 7                 builder.append(start);
 8                 builder.append("->");
 9                 builder.append(end);
10                 return builder.toString();
11             }
12     }
13     public List<String> summaryRanges(int[] nums) {
14         List<String> resList = new LinkedList<String>();
15         if (nums.length==0) return resList;
16         
17         int start = nums[0];
18         int end = nums[0];
19         
20         for (int i=1;i<nums.length;i++){
21             if (nums[i] <= end) continue;
22             
23             if (nums[i]==end+1){
24                 end = nums[i];
25             } else {
26                 resList.add(getRangeStr(start,end));
27                 start = nums[i];
28                 end = nums[i];
29             }
30         }
31         
32         resList.add(getRangeStr(start,end));
33         return resList;
34     }
35 }