LeetCode 練習問題集
問題 | 難易度 | 難易度 | テクニック |
★★ | 高 | Two Pointers(逆方向) | |
★★ | 高 | Two Pointers(逆方向) | |
★★ | 高 | Two Pointers(同方向) | |
★★ | 高 | Two Pointers(同方向) | |
★★★ | 高 | Two Pointers(逆方向) | |
★★★ | 中 | Two Pointers(逆方向) | |
★★★ | 中 | Two Pointers(逆方向) |
Two Pointersアルゴリズムは主に配列やリスト内の2つの要素のポインタ(位置)を同時に追跡し、それらを独立してまたは一緒に移動させる事で問題を解いていきます。
Two Pointersアルゴリズムは、主に次の2つの形式があります
- 同方向の二つのポインタ: 2つのポインタが同じ方向に移動します。一般に、一方のポインタ(slow)が他方のポインタ(fast)よりも遅く移動します。このテクニックは、リンクリストにおけるサイクルの検出や、配列における最大/最小の部分配列の計算など、多くの問題に使用されます。
- 逆方向の二つのポインタ: 一方のポインタが配列の先頭から始まり、他方のポインタが配列の末尾から始まり、それぞれ逆の方向に移動します。これは、配列がソートされている場合や、2つの要素のペアを見つける必要がある場合(例えば、2つの数の和が特定の値になるようなペア)などに特に有用です。
Is Palindrome
難易度:★ 重要度: 高