Two Pointers Study Guide ======================== :::warning [< Return to Home Page](https://hackmd.io/@siansiansu/HknJJm0W0) ::: Basic Two Pointers ------------------ ### Same Direction Pointers Problems where both pointers move in the same direction. - 🟩 [26\. Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/) \[[Solution](https://hackmd.io/@siansiansu/ryJKpo_4A)\] - 🟩 [27\. Remove Element](https://leetcode.com/problems/remove-element/) \[[Solution](https://hackmd.io/@siansiansu/r1YtwIuN0)\] - 🟨 [80\. Remove Duplicates from Sorted Array II](https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/) \[[Solution](https://hackmd.io/@siansiansu/rJlnQkn_ER)\] - 🟩 [283\. Move Zeroes](https://leetcode.com/problems/move-zeroes/) \[[Solution](https://hackmd.io/@siansiansu/H1pSnn_zC)\] - 🟩 [88\. Merge Sorted Array](https://leetcode.com/problems/merge-sorted-array/) \[[Solution](https://hackmd.io/@siansiansu/BJ3TvBdEC)\] - 🟩 [217\. Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) \[[Solution](https://hackmd.io/@siansiansu/BJnZI0PGA)\] ### Opposite Direction Pointers Problems where pointers start from opposite ends and move towards each other. - 🟩 [125\. Valid Palindrome](https://leetcode.com/problems/valid-palindrome/) \[[Solution](https://hackmd.io/@siansiansu/BJbiorDMR)\] - 🟨 [189\. Rotate Array](https://leetcode.com/problems/rotate-array/) \[[Solution](https://hackmd.io/@siansiansu/HJYTcK4mC)\] - 🟨 [167\. Two Sum II - Input Array Is Sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/) \[[Solution](https://hackmd.io/@siansiansu/SkDg1djuC)\] Advanced Two Pointers --------------------- ### Sliding Window A variation of the two pointers technique for substring problems. - ➡️ [Sliding Window Guide](https://hackmd.io/@siansiansu/rkORjyXB0) ### Fast and Slow Pointers Problems involving detecting cycles or finding middle elements. - 🟩 [CyclicRotation](https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/) \[[Solution](https://hackmd.io/@siansiansu/Sk-Du_rB0)\] ### Multiple Pointers Problems requiring more than two pointers. - 🟨 [15\. 3Sum](https://leetcode.com/problems/3sum/) \[[Solution](https://hackmd.io/@siansiansu/S15y8tNQA)\] - 🟨 [16\. 3Sum Closest](https://leetcode.com/problems/3sum-closest/) \[[Solution](https://hackmd.io/@siansiansu/H1ASwY4mR)\] ### Permutation-based Problems involving permutations solved using two pointers. - 🟨 [31\. Next Permutation](https://leetcode.com/problems/next-permutation/) \[[Solution](https://hackmd.io/@siansiansu/B1w0DKN7R)\] ### Water Container Problems A specific class of problems involving container capacities. - 🟨 [11\. Container With Most Water](https://leetcode.com/problems/container-with-most-water/) \[[Solution](https://hackmd.io/@siansiansu/HkBgaO4XR)\] - 🟥 [42\. Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/) \[[Solution](https://hackmd.io/@siansiansu/S1gCsFV7R)\] ### Complex Processing Problems requiring more complex logic with two pointers. - 🟥 [68\. Text Justification](https://leetcode.com/problems/text-justification/) \[[Solution](https://hackmd.io/@siansiansu/S1hWFmzB0)\] Two Pointers in Different Data Structures ----------------------------------------- ### String Operations Applying two pointers technique to string problems. - 🟩 [392\. Is Subsequence](https://leetcode.com/problems/is-subsequence/) \[[Solution](https://hackmd.io/@siansiansu/ryxPCAWBC)\] - 🟩 [844\. Backspace String Compare](https://leetcode.com/problems/backspace-string-compare/) \[[Solution](https://hackmd.io/@siansiansu/rJaqk1OGR)\] Problem Difficulty Legend ------------------------- - 🟩 Easy - 🟨 Medium - 🟧 Medium-Hard - 🟥 Hard - ⬛ Very Hard Additional Resources -------------------- - [Two Pointers Technique (GeeksforGeeks)](https://www.geeksforgeeks.org/two-pointers-technique/) - [Leetcode Patterns: Two Pointers](https://leetcode.com/discuss/study-guide/1688903/Solved-all-two-pointers-problems-in-100-days) - [Two Pointers Algorithm for Beginners](https://medium.com/swlh/two-pointer-algorithm-for-beginners-73da0127d883)