前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode,Go实现买卖股票的最佳时机

LeetCode,Go实现买卖股票的最佳时机

作者头像
微客鸟窝
发布2021-08-18 15:28:57
2590
发布2021-08-18 15:28:57
举报
文章被收录于专栏:Go语言指北

力扣题目:

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

1. 暴力破解

使用两层循环嵌套,分别拿后一天的与当前的做差,取出最大的那个差值:

代码语言:javascript
复制
func maxProfit(prices []int) int {
    n := len(prices)
    max := 0
    for i := 0; i<n; i++{
        for j := i+1; j<n; j++{
            curmax := prices[j] - prices[i]
            if curmax > max {
                max = curmax
            }
        }
    }
    return max
}

我们尝试使用这种暴力思路进行解答,提交程序,发现超时了。

2. 遍历迭代法

代码语言:javascript
复制
func maxProfit(prices []int) int {
 const INT_MAX = int(^uint(0) >> 1)
 min,max := INT_MAX,0
 for _,v := range prices {
  if v < min {
   min = v
  }else if v - min > max {
   max = v - min
  }
 }
 return max
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微客鸟窝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 力扣题目:
  • 解题思路
    • 1. 暴力破解
      • 2. 遍历迭代法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档