Python [Leetcode 121]Best Time to Buy and Sell Stock
2024-10-11 23:48:03
题目描述:
Say you have an array for which the ith element is the price of a given stock on day i.
If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.
Example 1:
Input: [7, 1, 5, 3, 6, 4]
Output: 5 max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)
Example 2:
Input: [7, 6, 4, 3, 1]
Output: 0 In this case, no transaction is done, i.e. max profit = 0.
解题思路:
动态规划,记录最小值的那个值
代码如下:
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
if len(prices) == 0:
return 0 maxProfit = 0
minPrice = prices[0] for i in range(len(prices)):
if prices[i] < minPrice:
minPrice = prices[i]
if prices[i] - minPrice > maxProfit:
maxProfit = prices[i] - minPrice return maxProfit
最新文章
- Git系列教程二 基础介绍
- LightOJ1051 Good or Bad(DP)
- sass初步认识1
- java提高篇---HashTable
- [置顶] DataGridView控件---绑定数据方法
- CentOS7设置IP地址
- Oracle SYS_CONTEXT Function
- Android 安全测试
- poj3258 二分 最小值最大化问题
- php实现备份数据库
- 根据id查询所有子节点/父节点,mysql 以及ssm前后台处理流程
- Linux eclipse 编译C++
- Away3D引擎学习入门笔记
- java并发:CopyOnWriteArrayList简单理解
- hive元数据研究
- C# Http访问帮助类,支持get post请求文件下载 [
- 项目管理工具- Maven
- UI1
- Android Studio -导入项目 gradle处理
- C#中Console.ReadLine()和Console.Read()有何区别?