0%

Two Ponit Tutorials

C++ Two Ponit Tutorials

#雙指標

  • 用來從陣列中搜尋特定區間
  • 耗時為O(N),比暴力法(O(N^2))快
  • 需要在搜尋的區間跟區間長度有關時才能使用
  • 使用兩個index作為左邊界跟右邊界
  • 根據條件,需縮減區間時,左邊界右移
  • 根據條件,需擴增區間時,右邊界右移
  • 透過動態的區間內容搜尋所有可能

#範例

以1133C為範例,此題目給你一組數列,要 求你將他們分組,並滿足每組中最大的減最小的差在5以內,問你最多人的一組可以是多少人。

先將數列排序,然後依照雙指標的作法

區間最右邊(最大值)減區間最左邊(最小值)的差在5以內,滿足分組條件,嘗試擴充區間,右邊界右移。

差不在5以內,不滿足分組條件,縮減編組,左邊界右移。