买卖股票的最佳时机-LintCode

来源:互联网 发布:linux 删除全部内容 编辑:程序博客网 时间:2024/04/28 18:11

假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
样例
给出一个数组样例 [3,2,3,1,2], 返回 1

#ifndef C149_H#define C149_H#include<iostream>#include<vector>using namespace std;class Solution {public:    /**    * @param prices: Given an integer array    * @return: Maximum profit    */    int maxProfit(vector<int> &prices) {        // write your code here        int len = prices.size();        if (len <= 0)            return 0;        vector<int> dp(len);        int count = INT_MIN;        for (int i = 1; i < len; ++i)        {            if (dp[i - 1] >= 0)                dp[i] = dp[i - 1] + prices[i] - prices[i - 1];            else                dp[i] = prices[i] - prices[i - 1];            count = dp[i]>count ? dp[i] : count;        }        return count>0?count:0;    }};#endif
原创粉丝点击