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

LeetCode - 买卖股票的最佳时机

作者头像
晓痴
发布2019-09-17 15:22:20
4220
发布2019-09-17 15:22:20
举报
文章被收录于专栏:曌的晓痴曌的晓痴

LeetCode第122题,难度简单。主要考察的就是对于贪心算法的

原题地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/

题目描述

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

基于题目的条件,其实抛开股票来看,需要计算的就是未来的数值比当前更高的时候,两者之间能相差多大。在一个数组里面,求分段的小->大的过程中的差值。

所以解法就是很简单的遍历整个数组,判断下一个元素是否大于当前元素,如果大于了,那就直接加上差值,否则跳过不管。这样的场景其实就是每天都进行买卖,只要不亏,就肯定买。

中文官网题解:

https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/solution/

个人题解:

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

结果:

貌似就连测试用例数量都不见了...不过成绩并不是很快。

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

本文分享自 曌的晓痴 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档