标签:i+1 最大 时机 注意 解释 UNC 不能 交易 大于
package main
import "fmt"
func main() {
/*
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
示例 1:
输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
*/
slice := []int{7, 1, 5, 3, 6, 4}
//买入
slice = sortarr(slice)
buy_price := slice[0]
fmt.Println("买入的价格:", buy_price)
//卖出
arr := []int{7, 1, 5, 3, 6, 4}
for i := 0; i < len(slice)-1; i++ {
if arr[i] == 1 {
arr = arr[i+1:]
break
}
}
fmt.Println(arr)
arr = sortarr(arr)
sell_price := arr[len(arr)-1]
fmt.Println("卖出的价格:", sell_price)
fmt.Println("最大利润为:", sell_price - buy_price)
}
func sortarr(arr []int) []int{
for j := 0; j < len(arr); j++ {
for i := 0; i < len(arr)-1; i++ {
if arr[i] > arr[i+1] {
arr[i], arr[i+1] = arr[i+1], arr[i]
}
}
}
return arr
}
标签:i+1 最大 时机 注意 解释 UNC 不能 交易 大于
原文地址:https://www.cnblogs.com/yzg-14/p/12373427.html