目標:掌握雙指標的解題方法
注意:雙指標的題目首先想暴力解法,然後想雙指標的優化方法
一般用雙指標的前提是單調性
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。第...