leetcode--买股票的最佳时机II--python

news/2024/7/8 5:43:03

文章目录

  • 题目
    • 题目详情
    • 注意
    • 示例
  • 代码
    • 思路
    • 解题代码
    • 运行结果
    • 最佳方案

题目

题目详情

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

设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

注意

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

示例

输入: [7,1,5,3,6,4]
输出: 7
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3
输入: [1,2,3,4,5]
输出: 4
解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0

代码

思路

  1. 这道题涉及到了贪心算法,但是我以前没有接触过,就说一下我的想法
  2. 首先想的是既然要获利最大,那么我想到的就是只要有利可图就卖掉,所以条件就出来了,就是数组里面的前一个i+1减去后一个i,如果大于0,那么就是有利可图。
  3. 之后累加起来就是我们总共的获利

解题代码

class Solution(object):def maxProfit(self, nums):totle = 0for i in range(len(nums)-1):differ = nums[i+1] - nums[i]    #条件if differ > 0:                  #有利可图totle += differreturn totle

运行结果

在这里插入图片描述

最佳方案

这里给出运行时间最快的一位大佬的代码,用时40ms思想都是一样的

class Solution:def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""if not prices:return 0res = 0for i in range(1,len(prices)):if prices[i]>prices[i-1]:res += prices[i] - prices[i-1]return res

http://lihuaxi.xjx100.cn/news/242939.html

相关文章

全球首届APMCon,带你给“应用性能”把把脉

前段时间,美国苹果公司应用程序购买商店和手机等一系列应用因技术故障中断服务,持续了约两个半小时。故障发生后,世界多地苹果用户纷纷吐槽无法购买和更新手机应用、无法备份等。其实,这不是苹果公司在线服务第一次掉线&#xff0…

Java培训收费标准是什么样的

java技术在互联网行业的快速发展,可谓是前景非常可观的,越来越多的人想要了解java技术系统学习的培训和收费标准,尤其是想知道Java培训收费标准是什么样的?来看看下面的详细介绍。 ​  Java培训收费标准是什么样的?要说培训学费我们首先要…

必读的 Java 学习资料分享!

大年前总结一篇 Python 的资源汇总,有同学说应该来篇 Java 的,LeanCloud 最擅长 Java 的工程师与大家做了个小分享,仅是根据个人的学习经验总结,如果工程师们还有更好的推荐,欢迎在留言板留言,与大家分享。…

Java培训找什么样的机构比较好

​ Java培训找什么样的机构比较好?很多人都比较关注java技术,想要学习java技术,参加相关工作,但如今市面上的java培训机构那么多,怎么样选择比较靠谱呢?来看看下面的详细介绍吧。 ​  Java培训找什么样的机构比较好?小编这里…

leetcode--无重复字符的最长子串--python

文章目录题目题目详情示例解题代码思路代码运行结果最佳方案题目 题目详情 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长…

简析 .NET Core 构成体系

简析 .NET Core 构成体系 Roslyn 编译器RyuJIT 编译器CoreCLR & CoreRTCoreFX(.NET Core Libraries).NET Core 代码开发、部署、运行过程总结前文介绍了.NET Core 在整个.NET 平台所处的地位,以及与.NET Framework的关系(原文链接),本文将详细介绍.N…

rsyslog的配置文件使用方法

参考地址: http://www.rsyslog.com/doc/v8-stable/configuration/property_replacer.html rsyslog消息模板的定义规则 "%msg:1:2%" : 》读取从pos从1到2的数据"%msg:::lowercase%" : 》将整个消息转换为小写"%msg:10:$%" : 》截取pos…

jQuery元素内容操作的方法有多少种?

jQuery中操作元素内容的方法,主要包括html()方法、text()方法和val()方法。html()方法用于获取或设置元素的HTML内容,text()方法用于获取或设置元素的文本内容,val()方法用来获取或设置表单元素的value值。具体使用说明如表1所示。 表1 元素内…