time : O(n^2) space: O(n^2);