首页 > 其他 > 详细

[LeetCode] Missing Ranges

时间:2015-06-26 00:24:50      阅读:148      评论:0      收藏:0      [点我收藏+]

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 };

 

[LeetCode] Missing Ranges

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!