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)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

恰如其分的软件架构

恰如其分的软件架构

George Fairbanks / 张逸、倪健、高翌翔 / 华中科技大学出版社 / 2013-9-1 / 88.00

本书描述了一种恰如其分的软件架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与 敏捷开发方法有机地结合在一起,适合普通程序员阅读。 . 这是一本超值的书,案例丰富有趣,言简意赅,阅读轻松。当年......一起来看看 《恰如其分的软件架构》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具