Time complexity: O(n)
Space complexity: O(k)
Space complexity: O(n)
Time complexity: O(n^2)
Space complexity: O(1)