算法筆記重點(12)two pointers

two pointers 利用問題本身特點以及序列的特性,使用兩個下標掃描從而快速解決問題。

two pointers可以同向也可以反向。例如求在一個沒有相同元素的序列中任取兩個元素和爲M的方式有多少種。這個時候如果直接遍歷,那麼需要兩個循環,即複雜度爲O(n2)。如果我們將序列排序,利用i,j反向掃描,則複雜度僅爲O(n)。另外,當我們在歸併排序時,merge也採用的是同向掃描,快速排序中則採用的是反向掃描,這些排序的優越性也體現了two pointers的強大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章