股票买卖一

题目来源

LeetCode 121. Best Time to Buy and Sell Stock

解题思路

方法一

  1. 贪心算法,累计收益,其最大值

精简解题

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
func maxProfit(p []int) int {
	ret := 0
	tmp := 0
	for i := 1; i < len(p); i++ {
		d := p[i] - p[i-1]
		if tmp+d < 0 {
			tmp = 0
		} else {
			tmp += d
			ret = max(ret, tmp)
		}
	}
	return ret
}
func max(a, b int) int {
	if a < b {
		return b
	}
	return a
}

股票买卖二

题目来源

LeetCode 122. Best Time to Buy and Sell Stock II

解题思路

方法一

  1. 贪心算法,累计收益,其最大值

精简解题

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
func maxProfit(p []int) int {
	ret := 0
	for i := 1; i < len(p); i++ {
		d := p[i] - p[i-1]
		if d > 0 {
			ret += d
		}
	}
	return ret
}