zoukankan      html  css  js  c++  java
  • 228. Summary Ranges

    You are given a sorted unique integer array nums.

    Return the smallest sorted list of ranges that cover all the numbers in the array exactly. That is, each element of nums is covered by exactly one of the ranges, and there is no integer x such that x is in one of the ranges but not in nums.

    Each range [a,b] in the list should be output as:

    • "a->b" if a != b
    • "a" if a == b

    Example 1:

    Input: nums = [0,1,2,4,5,7]
    Output: ["0->2","4->5","7"]
    Explanation: The ranges are:
    [0,2] --> "0->2"
    [4,5] --> "4->5"
    [7,7] --> "7"
    

    Example 2:

    Input: nums = [0,2,3,4,6,8,9]
    Output: ["0","2->4","6","8->9"]
    Explanation: The ranges are:
    [0,0] --> "0"
    [2,4] --> "2->4"
    [6,6] --> "6"
    [8,9] --> "8->9"
    

    Example 3:

    Input: nums = []
    Output: []
    

    Example 4:

    Input: nums = [-1]
    Output: ["-1"]
    

    Example 5:

    Input: nums = [0]
    Output: ["0"]
    

    Constraints:

    • 0 <= nums.length <= 20
    • -231 <= nums[i] <= 231 - 1
    • All the values of nums are unique.

    two pointers, time = O(n), space = O(1)

    class Solution {
        public List<String> summaryRanges(int[] nums) {
            List<String> res = new ArrayList<>();
            if(nums == null || nums.length == 0) {
                return res;
            }
            
            for(int i = 0, j = 0; j < nums.length; j++) {
                if(j + 1 < nums.length && nums[j + 1] - nums[j] == 1) {
                    continue;
                }
                if(i == j) {
                    res.add(nums[i] + "");
                } else {
                    res.add(nums[i] + "->" + nums[j]);
                }
                i = j + 1;
            }
            return res;
        }
    }
  • 相关阅读:
    第二阶段团队站立会议06
    第二阶段团队站立会议05
    Spring
    JVM
    线程池
    java内存模型
    线程
    接口与抽象类
    动态绑定,多态,static
    同步异步,并发并行概念的理解
  • 原文地址:https://www.cnblogs.com/fatttcat/p/13896476.html
Copyright © 2011-2022 走看看