美文网首页
228. 汇总区间

228. 汇总区间

作者: 放下梧菲 | 来源:发表于2020-05-10 09:41 被阅读0次

    给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。

    示例 1:

    输入: [0,1,2,4,5,7]
    输出: ["0->2","4->5","7"]
    解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。
    示例 2:

    输入: [0,2,3,4,6,8,9]
    输出: ["0","2->4","6","8->9"]
    解释: 2,3,4 可组成一个连续的区间; 8,9 可组成一个连续的区间。

    本题没有用什么特殊算法技巧,我们遍历整个数组,当数组的当前元素的后一位比前一位大1,就归并区间,直到后一位不比前一位大1即可。
    思路也是比较简单的,代码如下:

    class Solution {
        public List<String> summaryRanges(int[] nums) {
            
            List<String> ans = new ArrayList<>();
            int start = 0;
            int end = nums.length;
            while(start < end){
    
                String tmp = new String();
                tmp += nums[start];
                int i = start;
                while( i + 1 < end && nums[i] + 1 == nums[i+1]){
                    i++;
                }
                if(i != start){
                    tmp += "->"+nums[i];
                    start = i;
                }
                ans.add(tmp);
                start++;
            }
            return ans;
        }
    }
    

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/summary-ranges
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:228. 汇总区间

          本文链接:https://www.haomeiwen.com/subject/zqvdnhtx.html