• Java实现 LeetCode 228 汇总区间


    228. 汇总区间

    给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。

    示例 1:

    输入: [0,1,2,4,5,7]
    输出: [“0->2”,“4->5”,“7”]
    解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。
    示例 2:

    输入: [0,2,3,4,6,8,9]
    输出: [“0”,“2->4”,“6”,“8->9”]
    解释: 2,3,4 可组成一个连续的区间; 8,9 可组成一个连续的区间。

    class Solution {
        public List<String> summaryRanges(int[] nums) {
            int lo = 0, hi = 1;
            List<String> res = new ArrayList<>();
            if (nums.length == 0) return res;
            while (hi <= nums.length) {
                if (hi != nums.length && nums[hi] - 1 == nums[hi-1]) {
                    hi ++;
                } else {
                    StringBuilder str = new StringBuilder();
                    if (lo == hi - 1) {
                        str.append(nums[lo]);
                    } else {
                        str.append(nums[lo]).append("->").append(nums[hi-1]);
                    }
                    res.add(str.toString());
                    lo = hi;
                    hi ++;
                }
            }
    
            return res;
        }
    
    }
    
  • 相关阅读:
    第十一周总结
    代码大全第二版-阅读笔记03
    第十周总结
    第十四周总结
    第十三周总结
    图书管理系统
    《软件需求模式》阅读笔记(三)
    第十二周总结
    语义分析
    第十一周总结
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946667.html
Copyright © 2020-2023  润新知