配列 / 文字列(応用)Two Pointers
LeetCode 練習問題集
| 問題 | 難易度 | 難易度 | テクニック |
|---|---|---|---|
| Valid Palindrome | ★★ | 高 | Two Pointers(逆方向) |
| Reverse Vowels of a String | ★★ | 高 | Two Pointers(逆方向) |
| Is Subsequence | ★★ | 高 | Two Pointers(同方向) |
| Remove Element | ★★ | 高 | Two Pointers(同方向) |
| Two Sum II - Input Array Is Sorted | ★★★ | 高 | Two Pointers(逆方向) |
| 3Sum | ★★★ | 中 | Two Pointers(逆方向) |
| Total Cost to Hire K Workers | ★★★ | 中 | Two Pointers(逆方向) |
Two Pointersアルゴリズムは主に配列やリスト内の2つの要素のポインタ(位置)を同時に追跡し、それらを独立してまたは一緒に移動させる事で問題を解いていきます。
Two Pointersアルゴリズムは、主に次の2つの形式があります
- 同方向の二つのポインタ: 2つのポインタが同じ方向に移動します。一般に、一方のポインタ(slow)が他方のポインタ(fast)よりも遅く移動します。このテクニックは、リンクリストにおけるサイクルの検出や、配列における最大/最小の部分配列の計算など、多くの問題に使用されます。
- 逆方向の二つのポインタ: 一方のポインタが配列の先頭から始まり、他方のポインタが配列の末尾から始まり、それぞれ逆の方向に移動します。これは、配列がソートされている場合や、2つの要素のペアを見つける必要がある場合(例えば、2つの数の和が特定の値になるようなペア)などに特に有用です。
Is Palindrome
難易度:★ 重要度: 高
この続きは、購入者向けの内容です。
非表示コンテンツ 📝 8,681文字 🖼 4枚の画像
続きは購入後に閲覧できます。
この教材を購入 ↗