基本演算法 雙指標演算法

2021-10-06 10:15:49 字數 783 閱讀 4214

目標:掌握雙指標的解題方法

注意:雙指標的題目首先想暴力解法,然後想雙指標的優化方法

一般用雙指標的前提是單調性

for (int i = 0, j = 0; i < n; i ++ )

常見問題分類:

(1) 對於乙個序列,用兩個指標維護一段區間

(2) 對於兩個序列,維護某種次序,比如歸併排序中合併兩個有序序列的操作

acwing的

p799

給定乙個長度為n的整數序列,請找出最長的不包含重複數字的連續區間,輸出它的長度。

思路是這樣的:

有兩個指標:l,r

都是向右走的,r每次往右走,就將數字計入下來有幾個,當超過乙個的時候,l出動,走動並將儲存的個數減一

p800 陣列元素的目標和

題目

給定兩個公升序排序的有序陣列a和b,以及乙個目標值x。陣列下標從0開始。

請你求出滿足a[i] + b[j] = x的數對(i, j)。

這個比上一題更明顯,單調性,兩個公升序的有序陣列

題解

總的來說: 雙指標演算法,利用單調性去優化,如何去優化,就看具體的題目了

雙指標演算法

雙指標演算法模板 for int i 0,j 0 i n i 常見問題分類 1 對於乙個序列,用兩個指標維護一段區間 2 對於兩個序列,維護某種次序,比如歸併排序中合併兩個有序序列的操作 例題1 最長連續不重複子序列 給定乙個長度為n的整數序列,請找出最長的不包含重複數字的連續區間,輸出它的長度。輸...

雙指標演算法

title 雙指標演算法 date 2019 05 26 23 45 09 tags 雙指標演算法 雙指標演算法 主要是兩大類 核心思想 將乙個 o n 2 o n 2 o n2 的演算法 優化成 o n o n o n 的for int i 0 i for int j 0 j for i 0,j ...

雙指標演算法

一般雙指標的模板 雙指標演算法的思考方式 先想出暴力做法,再觀察是否存在單調性。傳統的演算法需列舉兩個指標的組合,兩個for迴圈時間複雜度為o n 2 雙指標演算法會使時間複雜度變為o n 給定乙個長度為n的整數序列,請找出最長的不包含重複數字的連續區間,輸出它的長度。輸入格式 第一行包含整數n。第...