汇总区间(Java)

大家好我是苏麟 , 这篇文章也是凑数的 ...

描述 :

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

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

题目 :

LeetCode 228.汇总区间 :

228. 汇总区间

分析 :

这个题使用双指针也可以非常方便的处理,慢指针指向每个区间的起始位置,快指针从慢指针位置开始向后遍历直到不满足连续递增(或快指针达到数组边界),则当前区间结束;然后将 slow指向更新为 fast + 1,作为下一个区间的开始位置fast继续向后遍历找下一个区间的结束位置,如此循环,直到输入数组遍历完毕 .

解析 :

java 复制代码
// LeetCode
class Solution {
    public List<String> summaryRanges(int[] nums) {
        ArrayList<String> al = new ArrayList<>();

        int slow = 0;

        for(int fast = 0;fast < nums.length ; fast++){
            if(fast + 1 == nums.length || nums[fast] + 1 != nums[fast + 1]){
                StringBuffer s = new StringBuffer();
                s.append(nums[slow]);
                if(slow != fast){
                    s.append("->").append(nums[fast]);
                }
                al.add(s.toString());   
                slow = fast + 1;
            }
        }
        return al;
    }
}

本篇文章会收到算法通关第三关白银挑战 .

相关推荐
有一个好名字几秒前
力扣-递增的三元子序列
算法·leetcode·职场和发展
陌路20几秒前
S31 B树详解
数据结构·b树
Boop_wu3 分钟前
[Java 数据结构] 图(1)
数据结构·算法
无尽的罚坐人生7 分钟前
hot 100 128. 最长连续序列
数据结构·算法·贪心算法
Savior`L10 分钟前
基础算法:模拟、枚举
数据结构·c++·算法
软件算法开发20 分钟前
基于蘑菇繁殖优化的LSTM深度学习网络模型(MRO-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·蘑菇繁殖优化·mro-lstm
雪花desu20 分钟前
【Hot100-Java中等】LeetCode 11. 盛最多水的容器:双指针法的直观理解与数学证明
算法·leetcode
POLITE322 分钟前
Leetcode 438. 找到字符串中所有字母异位词 JavaScript (Day 4)
javascript·算法·leetcode
海绵宝龙26 分钟前
Vue 中的 Diff 算法
前端·vue.js·算法
wadesir42 分钟前
高效计算欧拉函数(Rust语言实现详解)
开发语言·算法·rust