- Using objects or sets to collect values/frequencies of values
- Avoid the need for nested loops or O(n2) operations with arrays / strings.
- Creating pointers or values that correspond to an index or position
- moving towards the beginning, or the end or middle based on a certain condition
- Searching for a pair of values or Something that meets a condition
- Creating a window which can either be an array or number from one position to another.
- the window either increases or closes, and a new window is created (depending on a certain condition)
- Useful for keeping track of a subset of data that is continuous in some way.
- Dividing a big data set(array, string, linked list, tree) into smaller chunks
- Repeating a process with a subset of data
- Approach on many algorithm (e.g. binary search, merge sort, quicksort)