简介描述:
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
样例。
代码:(在VS环境里并没有运行出来,不知道问题出现在哪了)
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
class Solution {
public:
int maxProfit(vector<int> &prices) {
if(prices.size() == 0){ //时刻注意数组越界
return 0;
} //若prices内没有元素,则返回0
int max = 0; //定义并使最大利润的初始值为0
int cur = prices[0];
for(int a = 0; a < prices.size(); ++a) //进行for循环
{
if(prices[a] < cur)
{ //对买股票的价格和卖出股票的价格进行比较
cur = prices[a];
}
else{
int t = prices[a] - cur;
if( t > max){
max = t;
} //通过媒介进行比较赋值传递
}
}
return max; //返回并输出最大利润max
}