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;
    }
}
相关推荐
Jerry12 小时前
LeetCode 28. 找出字符串中第一个匹配项的下标
算法
Jerry14 小时前
LeetCode 459. 重复的子字符串
算法
海石17 小时前
1500分的题目,确实有实力,不过还是我略胜一筹
算法·leetcode
海石17 小时前
【记忆化搜索】条条大路通AC,走好适合你的那一条,走到后再考虑走得快
算法·leetcode
Jerry19 小时前
LeetCode 151. 反转字符串中的单词
算法
咖啡星人k21 小时前
从Vibe Coding到Prompt Engineering:AI编程的新技能树
面试·职场和发展·ai编程
a11177621 小时前
LM 算法迭代过程动画演示(SLAM)
算法
头茬韭菜21 小时前
Context 的生死抉择:四层压缩、截断算法与 Session Memory
算法·ai
Jerry1 天前
LeetCode 541. 反转字符串 II
算法
Jerry1 天前
LeetCode 344. 反转字符串
算法