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

题意:给定一个有序数组,数组内没有重复元素,返回一个代表数组内数据范围的数组。

解决思路:从左往右遍历,当后一个元素与当前元素差不为1的时候就输出数据范围到数组中。

代码:

public List<String> summaryRanges(int[] nums) {
        List<String> list=new ArrayList();
        if(nums.length==1){
            list.add(nums[0]+"");
            return list;
        }
        for(int i=0;i<nums.length;i++){
            int a=nums[i];
            while(i+1<nums.length&&(nums[i+1]-nums[i])==1){
                i++;
            }
            if(a!=nums[i]){
                list.add(a+"->"+nums[i]);
            }else{
                list.add(a+"");
            }
        }
        return list;
    }

你可能感兴趣的:(LeetCode)