In this approach two pointers move towards or opposite to each other. It does not divide the search space logarithmicaly.
In this approach we continuosly divide search space into two halves. It divides the search space logarithmicaly.
In this approach, we store the results of overlapping subproblems to avoid redundant calculations. It optimizes recursive solutions by using memoization (top-down) or tabulation (bottom-up).
See my Leetcode Profile