package main import ( "fmt" ) func maxProfitOld(prices []int) int { last, cost, profit := -1<<31, 1<<31-1, 0 for _, v := range prices { if v < last { if last > cost { // sell stock profit += last - cost // buy stock cost = v } } if v < cost { // buy cheaper stock cost = v } // store price of yestoday last = v } // sell stock at last day if last > cost { profit += last - cost } return profit } // split into small pieces! func maxProfit(prices []int) int { profit := 0 for i := 1; i < len(prices); i++ { if prices[i] > prices[i-1] { profit += prices[i] - prices[i-1] } } return profit } func main() { a1 := []int{1, 2, 3, 46, 1, 4, 1, 4, 5} a2 := []int{2, 1} fmt.Println(maxProfit(a1)) fmt.Println(maxProfit(a2)) }