Swift 买卖股票的最佳时机 II

开始学习算法,在LeetCode中开始做初级算法这一章节,将做的题目在此做个笔记吧。

买卖股票的最佳时机 II

假设有一个数组,它的第 i 个元素是一个给定的股票在第 i 天的价格。

设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。

因为可以多次购买,所以可以只要第二天比第一天的股价高那就第一天买,第二天卖,如果第三天还更高,那就第二天卖了之后又买。这是我的一个简单的贪心算法的策略

代码如下:

class Solution {
    func maxProfit(_ prices: [Int]) -> Int {

        if prices.count == 0  || prices.count == 1 {
            return 0
        }

        var sum = 0
        for i in 1..<prices.count {
            if prices[i] > prices[i - 1] {
                sum += prices[i] - prices[i - 1]
            }
        }
        return sum   
    }
}

算法真的是弱项啊,希望大神们多加指导啊!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏本立2道生

重新思考面向过程与面向对象

面向过程的思考方式是,要采购原材料、生产产品、卖产品、管理入账出账,因此需要生产人员、销售人员、财务等,将他们串起来,公司就运转起来了。

11110
来自专栏Java架构

资深架构师谈Java——最牛逼的编程语言Java超越了所有咒骂它的“动态语言”Java的“继承人”没能超越它Java没有特别讨厌的地方结论程序员进阶方法

23840
来自专栏IT派

Node.js 用户量会不会在一年内超越 Java?

在最近 The New Stack 的采访 中,Node.js 基金会的社区组织者 Mikeal Rogers 表示 Node.js 用户量将在一年内超越 Ja...

39260
来自专栏数据结构与算法

BZOJ2023: [Usaco2005 Nov]Ant Counting 数蚂蚁(dp)

有一个小trick:在处理前缀和的时候我们可以保留下本层dp的信息,所以滚动数组是不需要的,具体看代码吧

5610
来自专栏牛客网

字节跳动一面凉经

【每日一语】如果这世界上真有奇迹,那只是努力的另一个名字。生命中最难的阶段,不是没有人懂你,而是你不懂你自己。——尼采

65610
来自专栏云社区全球资讯抢先看

马化腾再谈微信与QQ:微信重心在构建小程序 QQ聚焦年轻群体

【天极网网络频道】作为腾讯致胜的两大“法宝”:QQ和微信,前者拥有18岁的高龄,后者也即将迎来其7周岁。出乎意料的是,“年老”的QQ竟然成了年轻人最爱的社交AP...

23900
来自专栏数据的力量

最近很火的一条励志公式

1.01=1+0.01,也就是每天进步一点。1.01的365次方也就是说你每天进步一点点,一年以后,你将进步很大,远远大于“1”

10820
来自专栏趣学算法

学编程为什么要学数据结构?

如果你关注招聘试题,越是大的公司,问的问题越基础,有的甚至问你什么是栈和队列,反而一些小公司会关心你做过什么系统,关注点不同,大公司更注重基础扎实,发展潜力,而...

19810
来自专栏ThoughtWorks

TW洞见 | 张逸:快速了解Scala技术栈

我无可救药地成为了Scala的超级粉丝。在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为一个巨大的黑洞,吸引力使我不得不飞向它,以至于开始背离Jav...

33860
来自专栏企鹅号快讯

为什么那么多人说C+难学?怎么学

对于正在学习C/C++的同学来说,C语言可能不难,但是当自学C++的时候,总会出现各种问题,就像是一个恶性循环不懂所以不想看,关键是没有·一个由浅到深的过程,刚...

20080

扫码关注云+社区

领取腾讯云代金券