435. 无重叠区间
sort加&
在排序中左边界相同右边界也排序最小是行不通的,因为有左边大右边小的情况:
——————————————
————————
所以只能在for 里面把bound更新为min右边界
其他跟气球题一样
763.划分字母区间
一头雾水,但先遍历一遍找到每个字母出现的区间,就又是气球题了,不用局限于sort
根据每个字母的区间更新右边界,因为分割至少得在这个区间之后了
找到每个字母出现的区间又用到了hash,能数组则数组,int hash[27] = {0}; / ‘hash['i'-'a'] = ....
56. 合并区间
排序+更新右边界
新运用:lamda表达式
sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){return a[0] < b[0];});
back()的新运用
if (result.back()[1] >= intervals[i][0]) { // 发现重叠区间
// 合并区间,只更新右边界就好,因为result.back()的左边界一定是最小值,因为我们按照左边界排序的
result.back()[1] = max(result.back()[1], intervals[i][1]);