var maxProfit = function (prices) {
if (prices.length === 0) {
return 0
}
let min = Number.MAX_SAFE_INTEGER
let max_delta = 0
for (const item of prices) {
min = item < min ? item : min
max_delta = (item - min) > max_delta ? (item - min) : max_delta
}
return max_delta
};
...
let min = prices[0]
...
var maxProfit = function (prices) {
if (prices.length === 0) {
return 0
}
let last = 0
profit = 0
for (let i = 0; i < prices.length; i++) {
last = Math.max(0, last + prices[i + 1] - prices[i])
profit = Math.max(profit, last)
}
return profit
};
func maxProfit(prices []int) int {
if len(prices) == 0 {
return 0
}
min := math.MaxInt64
max_delta := 0
for _, elem := range prices {
if elem < min {
min = elem
}
if (elem - min) > max_delta {
max_delta = elem - min
}
runtime.Gosched()
}
return max_delta
}