Leecode刷题之旅-C语言/python-121买卖股票的最佳时机
2024-10-21 06:01:23
/*
* @lc app=leetcode.cn id=121 lang=c
*
* [121] 买卖股票的最佳时机
*
* https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/description/
*
* algorithms
* Easy (48.50%)
* Total Accepted: 32.5K
* Total Submissions: 66.9K
* Testcase Example: '[7,1,5,3,6,4]'
*
* 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
*
* 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
*
* 注意你不能在买入股票前卖出股票。
*
* 示例 1:
*
* 输入: [7,1,5,3,6,4]
* 输出: 5
* 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
* 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
*
*
* 示例 2:
*
* 输入: [7,6,4,3,1]
* 输出: 0
* 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
*
*
*/
int maxProfit(int* prices, int pricesSize) {
int maxpro=,temp=;
int i,j;
for(i=;i<pricesSize;i++){
for(j=i+;j<pricesSize;j++){
if(prices[j]>prices[i]){
temp=prices[j]-prices[i];
if(temp>=maxpro){
maxpro=temp;
}
}
}
}
return maxpro;
}
思路很好理解的。双下标,第一个固定,然后第二个在之后不断移动,如果比第一个下标指定的值大的话,就相减。
设一个temp等于差值,与上一次的maxpro进行比较,如果大的话,maxpro等于temp。
-----------------------------------------------------------------------------------------------------------------
python:
#
# @lc app=leetcode.cn id=121 lang=python3
#
# [121] 买卖股票的最佳时机
#
# https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/description/
#
# algorithms
# Easy (48.50%)
# Total Accepted: 32.5K
# Total Submissions: 66.9K
# Testcase Example: '[7,1,5,3,6,4]'
#
# 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
#
# 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
#
# 注意你不能在买入股票前卖出股票。
#
# 示例 1:
#
# 输入: [7,1,5,3,6,4]
# 输出: 5
# 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
# 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
#
#
# 示例 2:
#
# 输入: [7,6,4,3,1]
# 输出: 0
# 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
#
#
#
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if len(prices) < 2:
return 0
profit = 0
minimum = prices[0]
for i in prices:
minimum = min(i, minimum)
profit = max(i - minimum, profit)
return profit
python这里用函数很方便,在价格最低那天买入,价格最高那天卖出,就会获得最大利润。(当然不能提前买)
最新文章
- war项目在tomcat上面部署
- 史上最牛js
- vmware 三种网络模式
- Glide 加载图片
- jquery中dom元素的attr和prop方法的理解
- 获取ItemsControl中当前item的binding数据
- SQL ORDER BY 子句
- ie8不支持transform: translateY,ie9支持不友好
- encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)
- C API 连接MYSQL
- 蒙特罗卡π算法(C++语言描述)
- simpletest:一个简单的PHP试工具
- [转载+原创]Emgu CV on C# (一) —— Emgu CV on Visual C# 2010
- MBProgressHUD ---
- 我的代码-random forest
- 经典SQL面试题(转)
- 机器学习&;深度学习之路
- 2018-02-06 编程猫IDE体验:对Scratch的改进
- tp5中代替tp3.2中的一些方法
- 20155211《网络对抗》Exp02 后门原理与实践
热门文章
- Going Deeper with Convolutions(Inception v1)笔记
- 修改容器的hosts文件
- Python学习---进程 1225
- Starting MySQL.. ERROR! The server quit without updating PID file (/var/mysql/data/feng.pid). 问题解决方案
- ZT 俞敏洪:2014我要闭嘴 相信未来不是梦
- PHP-----CMS
- SpringMVC(1)
- 2019.1.6 2.8 Spring的AOP事务
- 关闭layer当前弹窗
- VS2008 工具栏CMFCToolBar的使用总结(转)