标签: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