leetcode 57:插入區間
阿新 • • 發佈:2018-12-09
因為區間是按照起始端點排序的,所以,首先將newInterval按照順序插入到陣列中,之後進行合併即可
std::vector<Interval> insert(std::vector<Interval>& intervals, Interval newInterval) { std::vector<Interval> result; if(intervals.size()==0){ result.push_back(newInterval); return result; } int j=0; for(;j<intervals.size();j++){ if(newInterval.start<=intervals[j].start){ intervals.insert(intervals.begin()+j,newInterval); break; } } if(j==intervals.size()) intervals.insert(intervals.begin()+j,newInterval); int i=1; Interval a=intervals[0]; while(i!=intervals.size()){ if(a.end<intervals[i].start) { result.push_back(a); a=intervals[i]; }else if(a.end>=intervals[i].start&&a.end<intervals[i].end){ a.end=intervals[i].end; } i++; } result.push_back(a); return result; }