228. Summary Ranges

来源:互联网 发布:sql的意义和应用 编辑:程序博客网 时间:2024/06/05 20:42

这道题我写代码写的优点乱了。定义一个最初的起始位置(也就是范围的第一个)first,然后循环,nums[i]=nums[i-1],就继续循环。直到nums[i]!=nums[i-1]+1在做处理,范围就是first到nums[i-1],但如果first==nums[i-1] ,就输出“first”,其他输出”first->nums[i-1]”,还有一种特殊情况也就是i==nums.length-1,末尾,在判断最后一次,这道题1ms

public class Solution {    public List<String> summaryRanges(int[] nums) {        List<String> list = new ArrayList<>();        if(nums.length==0)return list;        if(nums.length==1){list.add(""+nums[0]);return list;}        int first =nums[0];        String str = new String("");        for(int i=1;i<nums.length;i++){            if(nums[i]==nums[i-1]+1){                if(i==nums.length-1){                    str = first+"->"+nums[i];                    list.add(str);                    break;                }                continue;            }else{                 if(i==nums.length-1){                     if(first == nums[i-1]){                        str = first+"";                        list.add(str);                     }else{                        str = first+"->"+nums[i-1];                        list.add(str);                     }                    list.add(""+nums[i]);                    break;                 }                 if(first == nums[i-1]){                     str = first+"";                     list.add(str);                     first = nums[i];                 }else{                    str = first+"->"+nums[i-1];                    list.add(str);                    first = nums[i];                 }            }        }        return list;    }}
0 0
原创粉丝点击