摘要: 滑动窗口月的Hard题,目前有两种解决的主流方案: 1.使用两个堆,一个大顶一个小顶,来计算平均值,C++使用的是priority_queue,即两个优先队列; 2.使用可自己调节的平衡二叉树,把时间和复杂度控制一定范围内,C++给出的是multiset; 针对于维护两个堆的思想: 建立两个堆,分别 阅读全文
posted @ 2021-02-03 16:59 暮云林凌 阅读(111) 评论(0) 推荐(0)
摘要: 做一下滑动窗口的总结问题,后续遇到题目会更新在此篇中; 滑动窗口本质上就是通过维护left和right两个指针,进行子序列的判定,通过不同的判定条件来决定left和right的右移; 在字符串问题中见的比较多; 例如,对于最长重复字符串的解决: 虽然该问题可以通过dp解决,但是还可以解决dp不能解决 阅读全文
posted @ 2021-02-03 02:43 暮云林凌 阅读(76) 评论(0) 推荐(0)
摘要: 双指针的另一用法,用于解决3sum问题; 时间复杂度位O(n2),有点高; 主题思想: 先进行排序,以减去相同元素的不同组合情况; 设立第一个指针,从前到后遍历; 对于后续区间进行左右两个指针向中间双向遍历,加和三个元素; 乍一看像是三次方复杂度,其实除去第一层,剩下的是On复杂度; class S 阅读全文
posted @ 2021-02-03 01:46 暮云林凌 阅读(34) 评论(0) 推荐(0)