雙指標思想
雙指標並不是真正意義上的指標
它是指:
通過用兩個變數的動態儲存兩個或多個結點,來達到簡化某些流程的目的
第一種型別的雙指標:兩個序列,兩個指標
第二種型別的雙指標:乙個序列,兩個指標(維護區間)
例題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 設相遇點距環的起點的...