228. 汇总区间

2024-01-07 20:28:42

给定一个 ?无重复元素?的?有序?整数数组?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"

示例 2:

输入:nums = [0,2,3,4,6,8,9]
输出:["0","2->4","6","8->9"]
解释:区间范围是:
[0,0] --> "0"
[2,4] --> "2->4"
[6,6] --> "6"
[8,9] --> "8->9"

提示:

  • 0 <= nums.length <= 20
  • -231 <= nums[i] <= 231 - 1
  • nums?中的所有值都?互不相同
  • nums?按升序排列

方法1:

    public List<String> summaryRanges(int[] nums) {
        ArrayList<String> list = new ArrayList<>();
        if (nums.length == 0){
            return null;
        }
        int left = 0;
        int right = left + 1;
        while (right < nums.length){
            if (nums[right] - nums[right - 1] == 1){
                right++;
            }else {
                if (right == left + 1){
                    list.add(nums[left] + "");
                }else {
                    list.add(nums[left] + "->" + nums[right - 1]);
                }
                left = right;
                right++;
            }
        }
        if (right == left + 1){
            list.add(nums[left] + "");
        }else {
            list.add(nums[left] + "->" + nums[right - 1]);
        }
        return list;
    }

方法2:(0ms)

    public List<String> summaryRanges(int[] nums) {
        List<String> ret = new ArrayList<String>();
        int i = 0;
        int n = nums.length;
        while (i < n) {
            int low = i;
            i++;
            while (i < n && nums[i] == nums[i - 1] + 1) {
                i++;
            }
            int high = i - 1;
            StringBuffer temp = new StringBuffer(Integer.toString(nums[low]));
            if (low < high) {
                temp.append("->");
                temp.append(Integer.toString(nums[high]));
            }
            ret.add(temp.toString());
        }
        return ret;
    }

文章来源:https://blog.csdn.net/linping_wong/article/details/135443894
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。