博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 121.Best Time to Buy and Sell Stock (买卖股票的最佳时机)
阅读量:2179 次
发布时间:2019-05-01

本文共 746 字,大约阅读时间需要 2 分钟。

题目描述:

给定一个数组,它的第 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。

 

AC C++ Solution:

思路:遍历一遍价格数组,变量minPrice保存遍历过的最低的价格,变量maxPro保存每天的价格与最低价格的差价即利润。实时更新最大利润。

 

class Solution {public:    int maxProfit(vector
& prices) { if(prices.size() == 0 ) return 0; int maxPro = 0; int minPrice = prices[0]; for(int i = 0; i < prices.size(); i++) { minPrice = min(minPrice,prices[i]); maxPro = max(maxPro,prices[i]-minPrice); } return maxPro; }};

 

 

 

 

 

转载地址:http://fgnkb.baihongyu.com/

你可能感兴趣的文章
简述极大似然估计
查看>>
用线性判别分析 LDA 降维
查看>>
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
SVM 的核函数选择和调参
查看>>
LightGBM 如何调参
查看>>
用 TensorFlow.js 在浏览器中训练神经网络
查看>>
cs230 深度学习 Lecture 2 编程作业: Logistic Regression with a Neural Network mindset
查看>>
梯度消失问题与如何选择激活函数
查看>>
为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例
查看>>
为什么在优化算法中使用指数加权平均
查看>>
什么是 Q-learning
查看>>