Leetcode 163: Missing Ranges
Given a sorted integer array where the range of elements are in the inclusive range [lower, upper], 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 }

浙公网安备 33010602011771号