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

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

内容简介:题目描述

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

查看所有标签

猜你喜欢:

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

CSS设计指南

CSS设计指南

史密斯 / 李松峰 / 人民邮电出版社 / 2013-5 / 59.00元

《图灵程序设计丛书:CSS设计指南(第3版)》是一本面向初中级读者的经典设计指南。全书共分8章,前4章分别介绍了HTML标记和文档结构、CSS工作原理、定位元素、字体和文本,对规则、声明、层叠、特指度、选择符等基本概念进行了详细解读。随后4章介绍了页面布局、界面组件,CSS3圆角、阴影、渐变、多背景等视觉设计技巧,最后还对如何实现最前沿的响应式设计进行了通俗易懂的演示。一起来看看 《CSS设计指南》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具