You are given an array `prices` where `prices[i]` is the price of a given stock on the `i-th` day. You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock. Return the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return 0.
Two Pointers / Greedy
To maximize profit, we need to buy at the lowest possible price so far and sell at the highest price that appears *after* that purchase. We can achieve this in a single pass by keeping track of the minimum price encountered and calculating the potential profit at each step.