Leetcode 汇总区间

这道题的意思就是12345这样连续的子段就用1->5表示,如果中间断开了比如123567这样就表示为1->3,5->7, 单个数字构不成区间用1个字符表示。

Java solution

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

        int start = nums[0]; // start 是区间第一个元素值
        //从第二个元素开始遍历
        for(int i = 1; i <= nums.length; ++i) {
            if(i == nums.length || nums[i] != nums[i - 1] + 1) {//到达整个数组结束位置或找到一个区间结束位置
                //然后判断这个区间是否只有1个元素
                if(start == nums[i - 1]) {
                    result.add(String.valueOf(start));
                }else {
                    result.add(start + "->" + nums[i - 1]);
                }
                //更新区间起始元素值
                if(i < nums.length) {
                    start = nums[i];
                }
            }
        }
        return result;
    }
}
相关推荐
不爱吃炸鸡柳33 分钟前
单链表专题(完整代码版)
数据结构·算法·链表
CylMK1 小时前
题解:AT_abc382_d [ABC382D] Keep Distance
算法
Dfreedom.1 小时前
计算机视觉全景图
人工智能·算法·计算机视觉·图像算法
Morwit1 小时前
【力扣hot100】 1. 两数之和
数据结构·c++·算法·leetcode·职场和发展
py有趣2 小时前
力扣热门100题之岛屿的数量(DFS/BFS经典题)
leetcode·深度优先·宽度优先
SpiderPex2 小时前
第十七届蓝桥杯 C++ B组-题目 (最新出炉 )
c++·职场和发展·蓝桥杯
无小道2 小时前
算法——暴力+优化
算法·优化·暴力
Free Tester2 小时前
如何判断 LeakCanary 报告的严重程度
java·jvm·算法
zyq99101_13 小时前
DFS算法实战:经典例题代码解析
python·算法·蓝桥杯·深度优先
智者知已应修善业3 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机