雙指標思想

2021-10-17 12:34:40 字數 1199 閱讀 7569

雙指標思想

雙指標並不是真正意義上的指標

它是指:

通過用兩個變數的動態儲存兩個或多個結點,來達到簡化某些流程的目的

第一種型別的雙指標:兩個序列,兩個指標

第二種型別的雙指標:乙個序列,兩個指標(維護區間)

例題1:陣列元素的目標和(兩個序列,兩個指標)

//保證有唯一的解

#

include

using

namespace std;

const

int n=

100010

;int a[n]

,b[n]

;int

main()

*/for(

int i=

1,j=m;i<=n;i++)if

(a[i]

+b[j]

==x)

}return0;

}

例題2:最長連續不重複子序列(乙個序列,兩個指標)

#

include

using

namespace std;

const

int n=

100010

;int b[n]

;int

main()

num=

max(num,i-j+1)

;}cout

}

判斷子串行(兩個序列,兩個指標)

#

include

using

namespace std;

intmain()

else break;

// }

if(a[num+1]

==b[i]

) num++;}

if(num==n) cout<<

"yes"

;else cout<<

"no"

;return0;

}

山脈陣列 雙指標的解題思想

給定乙個整數陣列 a,如果它是有效的山脈陣列就返回 true,否則返回 false。讓我們回顧一下,如果 a 滿足下述條件,那麼它是乙個山脈陣列 a.length 3 在 0 i a.length 1 條件下,存在 i 使得 a 0 a 1 a i 1 a i a i a i 1 a a.lengt...

寒假刷雙指標《雙指標》

633.平方數之和 難度中等163 給定乙個非負整數c,你要判斷是否存在兩個整數a和b,使得a2 b2 c。示例 1 輸入 c 5輸出 true解釋 1 1 2 2 5示例 2 輸入 c 3輸出 false示例 3 輸入 c 4輸出 true示例 4 輸入 c 2輸出 true示例 5 輸入 c 1...

快慢指標 雙指標

雙指標 二 左右指標的常用演算法 鏈結 利用快慢指標 最開始slow與fast指標都指向鍊錶第乙個節點,前者解決主要解決鍊錶中的問題,listnode detectcycle listnode head slow head while slow fast return slow 設相遇點距環的起點的...