123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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))
- }
|