[LeetCode] Missing Ranges

时间:2015-06-26 00:24:50   收藏:0   阅读:150

Problem Description:

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"].

Well, I guess this problem aims at testing your ability to think throughly. The tricky part in this problem is to take all possible cases into consideration and return the result correctly.

Of course, you also need to unify the boundary cases to give a succinct code.

The code is as follows.

 1 class Solution {
 2 public:
 3     vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) {
 4         vector<string> ranges;
 5         int pre = lower - 1, n = nums.size();
 6         for (int i = 0; i <= n; i++) {
 7             int cur = (i == n) ? upper + 1 : nums[i];
 8             if (cur - pre >= 2)
 9                 ranges.push_back(missingRanges(pre + 1, cur - 1));
10             pre = cur;
11         }
12         return ranges;
13     }
14 private:
15     string missingRanges(int low, int up) {
16         return (low == up) ? to_string(low) : to_string(low) + "->" + to_string(up);
17     }
18 };

 

原文:http://www.cnblogs.com/jcliBlogger/p/4601221.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!