买卖股票最佳时间

题目链接

思路

这题思路是遍历数组同时记录最小的数,然后遇到比他大的数和他相减与最大利润相比取最大值,遇到比自己小的数就吧最小值替换成那该数

go语言实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
func maxProfit(prices []int) int {

if len(prices)==0{
return 0
}
maxNum, initNum := 0, prices[0]

for i := 1; i < len(prices); i++ {
if initNum >= prices[i] {
initNum = prices[i]
} else {

if maxNum == 0 {
maxNum = prices[i] - initNum
} else if maxNum < prices[i]-initNum {
maxNum = prices[i] - initNum
}
}
}
return maxNum
}