Leetcode之PHP版题目解析(122. Best Time to Buy and Sell Stock II)

栏目: PHP · 发布时间: 5年前

内容简介:题目描述

2019-3-7 星期四   开始吧

刚才在群里和skys大佬聊天,大佬说断更的体验不好。是的,断更的体验确实不好,相对于我来说,可能突然断了两天三天自己的惰性都出来了,周日的话我一般喜欢看点别的书,或者约上几个老友一起打球,所以想了一下,可能我以后会在周一到周五的时候多刷几道,然后先更新在公众号,周末的时候我相当于再温习一遍了,两全其美。那么开始吧。

Leetcode之 <a href='https://www.codercto.com/topics/18749.html'>PHP</a> 版题目解析(122. Best Time to Buy and Sell Stock II)

今天的标题还是最佳买入和卖出的时间.上一版 Leetcode基础刷题之(121. Best Time to Buy and Sell Stock)

题目描述

给定一个数组,其中第i个的数值是第i天给定的股票的价格.计算出它最大的利润空间(卖出的钱减去买入的钱就是你的利润空间),和昨天不同的是,昨天只能买入一次,然后卖出,今天的题目可以多次交易(可以多次买入卖出一只股票).但是你不能同时进行多笔交易,也就是说,你再购买前,得先确保已经卖掉了之前买入的.

题目思路

我的思路就是循环整个数组,从第一个数开始比较,只要后一个数大于前一个数,说明此时就是有利润空间的,按照这样的流程走,只要有利润空间我就卖出,最后把所有的利润空间值和在一起,就是所能获取的最大利润.

实现代码

/**
     * @param Integer[] $prices
     * @return Integer
     */
    function maxProfit($prices) {
         $max=0;
        for($i=0;$i<count($prices);$i++) {
            if($prices[$i]<$prices[$i+1]) {
                $max+=$prices[$i+1]-$prices[$i];
            }
        }
        return $max;
    }

运行结果

Leetcode之PHP版题目解析(122. Best Time to Buy and Sell Stock II)

时间复杂度分析

这里有一个for循环,循环的次数取决于数组的个数,时间复杂度就是O(n),存储的是个恒定的空间,所以空间复杂度是O(1)。


以上所述就是小编给大家介绍的《Leetcode之PHP版题目解析(122. Best Time to Buy and Sell Stock II)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Music Recommendation and Discovery

Music Recommendation and Discovery

Òscar Celma / Springer / 2010-9-7 / USD 49.95

With so much more music available these days, traditional ways of finding music have diminished. Today radio shows are often programmed by large corporations that create playlists drawn from a limited......一起来看看 《Music Recommendation and Discovery》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试