zoukankan      html  css  js  c++  java
  • LeetCode 163. Missing Ranges

    原题链接在这里:https://leetcode.com/problems/missing-ranges/

    题目:

    Given a sorted integer array nums, where the range of elements are in the inclusive range [lowerupper], return its missing ranges.

    Example:

    Input: nums = [0, 1, 3, 50, 75], lower = 0 and upper = 99,
    Output: ["2", "4->49", "51->74", "76->99"]

    题解:

    If nums is null or empty, just add getRange(lower, upper).

    Otherwise, first add range between lower and nums[0].

    Then add missing range within nums.

    Last, add range between nums[nums.length - 1] and upper.

    Time Complexity: O(n). n = nums.length.

    Space: O(1). regardless res.

    AC Java:

     1 class Solution {
     2     public List<String> findMissingRanges(int[] nums, int lower, int upper) {
     3         List<String> res = new ArrayList<>();
     4         if(nums == null || nums.length == 0){
     5             res.add(getRange(lower, upper));
     6             return res;
     7         }
     8         
     9         if(lower < nums[0]){
    10             res.add(getRange(lower, nums[0] - 1));
    11         }
    12         
    13         for(int i = 1; i<nums.length; i++){
    14             if(nums[i - 1] != nums[i] && nums[i - 1] + 1 != nums[i]){
    15                 res.add(getRange(nums[i - 1] + 1, nums[i] - 1));
    16             }
    17         }
    18         
    19         if(nums[nums.length - 1] < upper){
    20             res.add(getRange(nums[nums.length - 1] + 1, upper));
    21         }
    22         
    23         return res;
    24     }
    25     
    26     private String getRange(int l, int r){
    27         if(l == r){
    28             return "" + l;
    29         }
    30         
    31         return l + "->" + r;
    32     }
    33 }

    类似Summary RangesData Stream as Disjoint Intervals.

  • 相关阅读:
    float对内联元素和块元素的影响
    行内元素的困扰
    Nodejs同步和异步编程
    let、const、var的区别
    作用域
    SpringMVC
    MVC2新闻编译与发布
    JSP显示新闻
    servlet应用
    SWPU邮件登录界面的仿写(第二次作业)
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/5301190.html
Copyright © 2011-2022 走看看