Leetcode 163: Missing Ranges

Given a sorted integer array where the range of elements are in the inclusive range [lowerupper], 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"].

 

 1 public class Solution {
 2     public IList<string> FindMissingRanges(int[] nums, int lower, int upper) {
 3         long start = lower;
 4         var result = new List<string>();
 5         var sb = new StringBuilder();
 6         
 7         for (int i = 0; i < nums.Length; i++)
 8         {
 9             if (nums[i] > start)
10             {
11                 result.Add(RangeToString(start, nums[i]));
12             }
13             
14             start = (long)nums[i] + 1;
15         }
16         
17         if (start < (long)upper + 1)
18         {
19             result.Add(RangeToString(start, (long)upper + 1));
20         }
21         
22         return result;
23     }
24     
25     private string RangeToString(long start, long end)
26     {
27         var sb = new StringBuilder();
28         sb.Append(start);
29                 
30         if (end > start + 1)
31         {
32             sb.Append("->");
33             sb.Append(end - 1);
34         }
35         
36         return sb.ToString();
37     }
38 }

 

posted @ 2017-12-18 10:11  逸朵  阅读(128)  评论(0)    收藏  举报