public static void Main()
var result = BuyAndSellStock(new int[]{21,12,11,9,6,3});
Console.WriteLine(result);
public static int BuyAndSellStock(int[] arr)
if (arr == null || arr.Length == 0) return 0;
int minBuy = arr[0], maxProfit = Int32.MinValue;
for (int i = 1; i < arr.Length; i++)
int diff = arr[i] - minBuy;
maxProfit = Math.Max(diff, maxProfit);
minBuy = Math.Min(minBuy, arr[i]);