1.合并区间
算法思路:
先对输入的区间进行排序,然后对前后两个区间进行合并
合并思路:
1.当要返回的区间集中没有区间时 直接加入第一个区间
2.当有区间集中有区间时 我们只需要看最后一个区间的右端点和新的即将加入的区间的左端点进行对比 若其右端点比左端点小 说明两个区间没有交集 大于等于则有交集 有交集取大作为原来区间的右端点 两个区间就完成了合并
注意点:要注意访问区间集最后一个区间左端点和右端点用的是vector<int> nums=answer.back()函数 左右端点分别是nums[0] 和nums[1]
2.最大数组和问题
算法思路:
要找出最大和的连续子数组,那么我们只需要比较加入当前的值后的sum值与当前元素的大小,sum的值取两者较大的一个 。如果sum比最大值还大,那么我们将他记为最大值。
实际上sum的选取就是双指针问题的简化版,如果前面的值加上当前的值比当前的值大 那么右指针继续往后移 若当前值更大 那么坐指针移到当前的位置 而我们的sum值就为左右指针区间值的和。