码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Missing Ranges

时间:2016-03-21 12:02:07      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

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

题目:

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

For example, given [0, 1, 3, 50, 75]lower = 0 and upper = 99, return ["2", "4->49", "51->74", "76->99"].

题解:

Summary Ranges相似.

expected是当前期待的数字, 初始化为lower.

若是expected不等于nums[i]时就说明出现了missing range, 要分类加结果.

看最后一个元素是否是upper, 若不是,还需要加最后一段.

Time Complexity: O(n). Space: O(1). 不考虑res大小.

AC Java:

 1 public class Solution {
 2     public List<String> findMissingRanges(int[] nums, int lower, int upper) {
 3         List<String> res = new ArrayList<String>();
 4         if(nums == null || nums.length == 0){
 5             if(lower == upper){
 6                 res.add(String.valueOf(lower));
 7                 return res;
 8             }else{
 9                 res.add(String.valueOf(lower) + "->" + String.valueOf(upper));
10                 return res;
11             }
12         }
13         
14         //最开始的expeted number 是 lower
15         int expected = lower;
16         for(int i = 0; i<nums.length; i++){
17             if(nums[i] != expected){ //若是出现expected 不等于 nums[i], 就该加missing range 到res中了
18                 if(expected + 1 == nums[i]){
19                     res.add(String.valueOf(expected));
20                 }else{
21                     res.add(String.valueOf(expected) + "->" + String.valueOf(nums[i]-1));
22                 }
23             }
24             //不论expected 是否等于 nums[i], 都更新expected 到 num[i]+1.
25             expected = nums[i]+1;
26             
27             //到了nums最后一个还是没有到达upper
28             if(i == nums.length-1 && nums[i] != upper){
29                 if(nums[i] + 1 == upper){
30                     res.add(String.valueOf(nums[i]+1));
31                 }else{
32                     res.add(String.valueOf(nums[i]+1) + "->" + String.valueOf(upper));
33                 }
34             }
35         }
36         
37         return res;
38     }
39 }

 

LeetCode Missing Ranges

标签:

原文地址:http://www.cnblogs.com/Dylan-Java-NYC/p/5301190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!