最近做题的一点点总结(一)
1、双指针算法
给定一个序列,求该序列的连续不含重复数字的序列长度的最大值。对于这道题,最暴力的想法是,用两个指针,从头到尾遍历。但是很明显,这样时间复杂度太明显。那如何才能降下来时间复杂度呢?我们可以考虑,将一个指针变成另一个指针的内指针。
像前面给的例子,就非常适合这种方法。首先,让我们分析一下问题,如果出现了重复元素,那么我们其实可以直接将指针移动到重复的元素中,位置更靠前的哪一个的后一位。这个时候,我们就可以使用双指针算法来实现这种操作。
2、区间合并问题
如果题目给我们很多区间,让我们进行合并(只有端点相交的时候,也要合并),那么我们应该如何去实现呢?
一种做法是,我们可以将各个区间按照区间左端点进行排序。这样的话,合并就分为两种情况,一种是前一个区间的右端点小于后一个端点的左端点,这种情况,我们需要更新区间左端点。
3、