https://leetcode-cn.com/problems/missing-ranges/
给定一个排序的整数数组 nums ,其中元素的范围在 闭区间 [lower, upper] 当中,返回不包含在数组中的缺失区间。
示例:
输入: nums = [0, 1, 3, 50, 75], lower = 0 和 upper = 99,
输出: [“2”, “4->49”, “51->74”, “76->99”]
阅读理解题,按照题目来即可。
class Solution { public: vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) { if( nums.empty()){ if( lower == upper) return { to_string(lower)}; else return { to_string(lower) + "->" + to_string(upper)}; } vector<string> res; //处理第 0 个 if( lower < nums[0]) if( lower + 1 == nums[0]) res.push_back( to_string( lower)); else res.push_back( to_string( lower) + "->" + to_string( nums[0] - 1)); //处理中间 for( int i = 1; i < nums.size(); i++) if( nums[i-1] == nums[i] || nums[i-1] + 1 == nums[i]) ; else if( nums[i-1] + 2 == nums[i]) res.push_back( to_string( nums[i-1] + 1)); else res.push_back( to_string( nums[i-1] + 1) + "->" + to_string( nums[i] - 1)); //处理最后一个 if( nums.back() < upper) if( nums.back() + 1 == upper) res.push_back( to_string( upper)); else res.push_back( to_string( nums.back() + 1) + "->" + to_string( upper)); return res; } };