0
点赞
收藏
分享

微信扫一扫

数组模拟简单 LeetCode228. 汇总区间

七公子706 2022-03-20 阅读 160
leetcode

228. 汇总区间

描述

给定一个 无重复元素 的 有序 整数数组 nums 。

返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。

列表中的每个区间范围 [a,b] 应该按如下格式输出:

“a->b” ,如果 a != b
“a” ,如果 a == b

分析

判断连续区间,拿到连续区间的两头,记录在结果集合中

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

相关推荐

0 条评论