Leetcode: Summary Ranges

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 {
    public List<String> summaryRanges(int[] nums) {
    	List<String> res = new ArrayList<String>();
    	if (nums.length == 0) {
    		return res;
    	}
        int start = 0;
        for (int i = 1; i < nums.length; i++) {
        	if (nums[i] == nums[i-1] + 1) {
        		continue;
        	}
        	if (i - 1 == start) {
        		res.add(String.valueOf(nums[start]));
        	} else {
        		res.add(nums[start] + "->" + nums[i-1]);
        	}
        	start = i;
        }
        if (nums.length - 1 == start) {
    		res.add(String.valueOf(nums[start]));
    	} else {
    		res.add(nums[start] + "->" + nums[nums.length - 1]);
    	}
        return res;
    }
}

Leave a comment