面试经典-28-汇总区间

题目

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

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

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

"a->b" ,如果 a != b

"a" ,如果 a == b

示例 1:

输入:nums = 0,1,2,4,5,7

输出:"0-\>2","4-\>5","7"

解释:区间范围是:

0,2 --> "0->2"

4,5 --> "4->5"

7,7 --> "7"

解

java 复制代码
class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> result = new ArrayList<>();
        if(nums.length == 0){
            return result;
        }

        int start = nums[0];
        int end = nums[0];
        for (int i = 1; i < nums.length; i++) {
            if (nums[i - 1] + 1 == nums[i]) {
                end = nums[i];
            } else {
                if (start == end) {
                    result.add(String.valueOf(start));
                } else {
                    result.add(start + "->" + end);
                }
                start = nums[i];
                end = nums[i];
            }
            
        }
        if (start == end) {
            result.add(String.valueOf(start));
        } else {
            result.add(start + "->" + end);
        }
        return result;
    }
}
相关推荐
微尘hjx4 小时前
【ByteTrack 04】多轨迹算法ByteTrack改进点
算法·yolo·目标检测·目标跟踪·bytetrack·ultralytics·车跟踪
路灯上の马陈6 小时前
二叉树的定义与性质
数据结构·二叉树·树结构·1024程序员节
小蒋观天下8 小时前
雷击与浪涌防护:前端SPD选型、接地网误区,接地不当反而引入干扰
深度学习·算法·机器学习
Bshaya_9 小时前
红黑树详解:概念、规则与插入实现
数据结构·红黑树·二叉搜索树·平衡树·插入逻辑
WBluuue10 小时前
数据结构与算法:分块(一):块状数组、块状链表
数据结构·c++·算法·链表
圣保罗的大教堂10 小时前
leetcode 3619. 总价值可以被 K 整除的岛屿数目 中等
leetcode
路灯上の马陈11 小时前
数据结构-树
数据结构·1024程序员节
澳鹏Appen11 小时前
澳鹏重磅发布ExamOCRBench:面向端到端试卷判分的多任务基准
算法·benchmark·基准评测
benjormin11 小时前
Java数据结构 二叉搜索树
数据结构·算法