Given an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete at most k transactions. Transactions cannot occur in parallel. One transaction should complete before starting another transaction.