G641. Missing Ranges
- Get link
- X
- Other Apps
class Solution {
public:
/*
* @param nums: a sorted integer array
* @param lower: An integer
* @param upper: An integer
* @return: a list of its missing ranges
*/
vector<string> findMissingRanges(vector<int> &nums, int lower, int upper) {
// write your code here
vector<string> res;
if(upper < lower){
return res;
}
const int size = nums.size();
if(size == 0){
if(upper != lower){
res.push_back(to_string(lower) + "->" + to_string(upper));
}
else{
res.push_back(to_string(lower));
}
return res;
}
if(lower > nums[size - 1] || upper < nums[0]){
return res;
}
if(lower != nums[0]){
long long pre = nums[0];
if(pre - 1 == lower){
res.push_back(to_string(lower));
}
else{
res.push_back(to_string(lower) + "->" + to_string(pre - 1));
}
}
for(int i = 1; i < size; i++){
long long pre = nums[i - 1];
long long cur = nums[i];
if(cur - pre <= 1){
continue;
}
if(cur - pre == 2){
res.push_back(to_string(cur - 1));
}
else{
res.push_back(to_string(pre + 1) + "->" + to_string(cur - 1));
}
}
if(upper != nums[size - 1]){
long long cur = nums[size - 1];
if(cur + 1 == upper){
res.push_back(to_string(upper));
}
else{
res.push_back(to_string(cur + 1) + "->" +to_string(upper));
}
}
return res;
}
};- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- Get link
- X
- Other Apps
Comments
Post a Comment