Dynamic Programming, Recursion, Competitive Programming, Leetcode, 3sum.
substructures preserve the optimality, we can use dynamic programming. Some Personal Insights I think one particularly interesting/important realization I had in my own perspective to these problems is that the recursive paradigm for solving problems allows one to easily discover the overlapping