57. 插入区间
1 class Solution 2 { 3 public: 4 vector<vector<int>> insert(vector<vector<int>>& nums, vector<int>& newInterval) 5 { 6 nums.push_back(newInterval); 7 vector<vector<int>> res; 8 if(nums.empty()) return res; 9 sort(nums.begin(),nums.end());//首先将所有nums排序,默认左端点升序 10 int m = nums.size(); 11 int start = nums[0][0],end = nums[0][1]; 12 13 for(int i = 1;i < m;i ++) 14 { 15 //此时有3种情况 16 //1、当前右端点小于end 17 //2、当前右端点大于end且end大于当前左端点 18 //3、end小于当前左端点 19 if(nums[i][1] < end) continue; 20 else if(nums[i][1] >= end && nums[i][0] <= end) end = nums[i][1]; 21 else if(nums[i][0] > end) 22 { 23 res.push_back({start,end}); 24 start = nums[i][0],end = nums[i][1]; 25 } 26 } 27 res.push_back({start,end}); 28 return res; 29 } 30 };
Mamba never out

浙公网安备 33010602011771号