[leetcode]Summary Ranges

Easy题,先上题目:

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”].

此题又暴露了思维不够严谨,从WA的两次原因就可以看出:

  1. 忽略了输入可能就一个值的可能;
  2. 忽略了输入可能为空的可能

    附上代码:

public class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> resList = new ArrayList<String>();
             if(nums==null || nums.length<1) 
                 return  resList;
             int i, index = 0, len;
             String tmp = null;
             if(nums.length == 1){
                 tmp = nums[0] + "";
                 resList.add(tmp);
             }else{
                 len = 1;
                 for(i = 1; i < nums.length; i++){
                     if(nums[i] - nums[i - 1] != 1){
                         if(len > 1){
                             tmp = String.format("%d->%d", nums[index], nums[i - 1]);
                             resList.add(tmp);
                             len = 1;
                         }else{
                             tmp = nums[index] + "";
                             resList.add(tmp);
                         }
                         index = i;
                     }else{
                         len ++;
                     }
                 }
                 if(len == 1){
                     tmp = nums[i - 1] + "";
                     resList.add(tmp);
                 }else{
                     tmp = String.format("%d->%d", nums[index], nums[i - 1]);
                     resList.add(tmp);
                 }
             }       
             return resList;
    }
}

题目链接:https://leetcode.com/problems/summary-ranges/

你可能感兴趣的:([leetcode]Summary Ranges)