163. Missing Ranges

 

handle overflow的情况 要是num == Integer.MAX_VALUE 直接return res

注意prev  <= num 的时候 讨论才有意义

 

 1 class Solution {
 2     public List<String> findMissingRanges(int[] nums, int lower, int upper) {
 3         List<String> res = new ArrayList<>();
 4         int prev = lower;
 5         for(int num : nums){
 6             if(num == prev){
 7                 prev = prev+1;
 8             }else if(num - 1 == prev){
 9                 res.add("" + prev);
10                 prev = num+1;
11             }else if(prev < num){
12                 res.add("" + prev + "->" + (num-1));
13                 prev = num+1;
14             }
15             if(num == Integer.MAX_VALUE){
16                 return res;
17             }
18         }
19         if(prev == Integer.MAX_VALUE) return res;
20         if(prev == upper){
21             res.add("" + prev);
22         }else if(prev < upper){
23             res.add("" + prev + "->" + upper);
24         }
25         return res;
26         
27     }
28 }

 

posted @ 2018-12-10 01:28  jasoncool1  阅读(188)  评论(0)    收藏  举报