How to Approach for a better solution without using Dynamic Programming?

I was going through various DP problems. But i saw some solutions having O(n^2) complexity even after using DP.
Problems like : Longest Increasing Subsequence have O(n^2) complexity.
I want to know, Using DP is best solution for such problems ?