双指针和滑动窗口
双指针
双指针其实跟滑动窗口类似。它利用遍历数组的某种单调性,使得运行的时间复杂度可以从 O(n ^ 2) 降到 O(n)。
滑动窗口
一般对于任何题目,都有这样一个模板
对于需要hash的题目,如果你坚持用dict()
或者{}
做,那么你可以这样初始化
或者你可以用defaultdict()
或者collections.Counter()
,这样就不需要考虑初始化的问题
这是一篇关于 double pointer and sliding window 算法的文章。看看笔试题中常常出现的滑动窗口算法的套路。
双指针其实跟滑动窗口类似。它利用遍历数组的某种单调性,使得运行的时间复杂度可以从 O(n ^ 2) 降到 O(n)。
一般对于任何题目,都有这样一个模板
对于需要hash的题目,如果你坚持用dict()
或者{}
做,那么你可以这样初始化
或者你可以用defaultdict()
或者collections.Counter()
,这样就不需要考虑初始化的问题