题目一
代码与解析一
暴力解法我试了,无法通过,会超时
carl大佬代码随想录本题链接
想法很巧,但我没想到,
func maxSubArray(nums []int) int {
res := -10000
count := 0
for i:=0;i<len(nums);i++{
count += nums[i]
if count>res{
res = count
}
if count<0{
count = 0
}
}
return res
}
题目二
代码与解析二
贪心算法很巧妙,把利润分解
一开始我以为的只买入一次,然后卖了,求利润最大化
但实际不是
贪心巧在把利润分解为按每天为单位,
而不是整体的,最低价对应最高卖出
整体代码
func maxProfit(prices []int) int {
res := 0
for i:=0;i+1<len(prices);i++{
v := prices[i+1]-prices[i]
if v>0{
res += v
}
}
return res
}
// func maxProfit(prices []int) int {
// var sum int
// for i := 1; i < len(prices); i++ {
// // 累加每次大于0的交易
// if prices[i]-prices[i-1] > 0 {
// sum += prices[i]-prices[i-1]
// }
// }
// return sum
// }