/*
* @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这里用函数很方便,在价格最低那天买入,价格最高那天卖出,就会获得最大利润。(当然不能提前买)

最新文章

  1. war项目在tomcat上面部署
  2. 史上最牛js
  3. vmware 三种网络模式
  4. Glide 加载图片
  5. jquery中dom元素的attr和prop方法的理解
  6. 获取ItemsControl中当前item的binding数据
  7. SQL ORDER BY 子句
  8. ie8不支持transform: translateY,ie9支持不友好
  9. encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)
  10. C API 连接MYSQL
  11. 蒙特罗卡π算法(C++语言描述)
  12. simpletest:一个简单的PHP试工具
  13. [转载+原创]Emgu CV on C# (一) —— Emgu CV on Visual C# 2010
  14. MBProgressHUD ---
  15. 我的代码-random forest
  16. 经典SQL面试题(转)
  17. 机器学习&amp;深度学习之路
  18. 2018-02-06 编程猫IDE体验:对Scratch的改进
  19. tp5中代替tp3.2中的一些方法
  20. 20155211《网络对抗》Exp02 后门原理与实践

热门文章

  1. Going Deeper with Convolutions(Inception v1)笔记
  2. 修改容器的hosts文件
  3. Python学习---进程 1225
  4. Starting MySQL.. ERROR! The server quit without updating PID file (/var/mysql/data/feng.pid). 问题解决方案
  5. ZT 俞敏洪:2014我要闭嘴 相信未来不是梦
  6. PHP-----CMS
  7. SpringMVC(1)
  8. 2019.1.6 2.8 Spring的AOP事务
  9. 关闭layer当前弹窗
  10. VS2008 工具栏CMFCToolBar的使用总结(转)